描述我正在处理一个需要JSON到JSON转换的问题,所以我使用Jolt库来解决这个问题。我的输入JSON文档中有一些节点,它们有时可以作为对象数组出现,有时可以作为普通对象出现。我无法定义适用于对象数组和单个对象的Jolt规范。
要求如果节点包含对象数组,则从数组中获取第0个元素并将其映射到输出JSON。
颠簸规格
[
{
"operation": "cardinality",
"spec": {
"patient": {
"@": "ONE",
"*": "ONE"
}
}
},
{
"operation": "shift",
"spec": {
"patient": {
"dateOfBirth": "patient.dateOfBirth",
"firstName": "patient.firstName",
"lastName": "patient.lastName"
}
}
}
]
输入JSON(JSON规范适用于此输入)
{
"patient": [
{
"dateOfBirth": [
"19890101",
"19890101"
],
"firstName": "Test",
"lastName": "Test"
},
{
"dateOfBirth": [
"19890101",
"19890101"
],
"firstName": "Test",
"lastName": "Test"
}
]
}
输出JSON(获取预期输出)
{
"patient" : {
"dateOfBirth" : "19890101",
"firstName" : "Test",
"lastName" : "Test"
}
}
但是,当患者不是作为数组而是单个对象出现时,则定义的jolt规范不再起作用。
输入JSON(JSON规范不适用于此输入)
{
"patient": {
"dateOfBirth": [
"19890101",
"19890101"
],
"genderCode": "1",
"firstName": "Test",
"lastName": "Test"
}
}
实际输出(不正确)
{
"patient" : {
"dateOfBirth" : [ "19890101", "19890101" ],
"firstName" : "Test",
"lastName" : "Test"
}
}
预期产出
{
"patient" : {
"dateOfBirth" : "19890101",
"firstName" : "Test",
"lastName" : "Test"
}
}
您可以通过使用modify-beta transform来确定< code>patient是否为数组。在本例中,我在转换中使用了firstElement函数。然后,使用条件逻辑,例如
[
{
"operation": "modify-overwrite-beta",
"spec": {
"isArray": ["=firstElement(@(1,patient))", "No"]
}
},
{
"operation": "shift",
"spec": {
"@(0,isArray)": {
"No": { "@(2,patient)": "patient" },
"*": { "@": "patient.&" }
}
}
},
{
"operation": "cardinality",
"spec": {
"*": {
"*": "ONE"
}
}
}
]
如果不需要属性“genderCode”
,则添加额外的删除转换,例如
,
{
"operation": "remove",
"spec": {
"*": {
"genderCode": ""
}
}
}
我正在尝试用以下规格进行JOLT换班操作,这是不起作用的。不知道我犯了什么错误。在这种情况下需要帮助。输出JSON作为一个对象来代替Array,shift也不能按预期工作。
我是尼菲的新手。我试图创建一个颠簸规范,但没有得到它。谁能帮帮我。 详细信息如下:流文件中的属性:详细信息,ID,名称,地址,状态 流文件看起来像:[{“to”:“xxx1”},{“to”:“xx2”}、{“to”:“xxx3”}和{“到”:“XXX”}] 预期以下输出: 我能够发展到这个。但是我不知道如何获取“详细信息”字段
我正在尝试使用 JOLT 转换 JSON。此 JSON 由嵌套数组组成,我无法获得正确的转换。 这是原始的JSON。请注意,总会有一个带有单个对象的“结果”数组。此对象将始终包含一个“行”数组。我想要行数组中每个元素的字段。 这是我写的规范: 预期的 JSON 是: 然而,我的规范返回以下输出: 水平可能有问题。但是我想不出来。有人能帮忙吗?
我正在尝试使用JOLT转换JSON。这个JSON由嵌套数组组成,我不能正确地转换它。有人能帮忙吗?谢了。 这是我写的规范。 我期待的JSON是: 然而,我得到了错误的输出。不知怎的,我的嵌套对象正在转换为列表。 我不知道出了什么问题。有人能帮忙吗?
我正在尝试编写一个震动规范,用于在下面提到的预期输出中转换以下输入 输入: <代码>{"城市":"西雅图","州":"西澳","国家":"美国","日期":"10/20/2018","用户列表": [ { "名":"大卫","年龄":"22","性别":"M","公司":"好" }, { "名":"汤姆","年龄":"30","性别":"M","公司":"好" }, { "名":"安妮","年龄"
尝试转换如下内容时,我为转换后的对象获取了一个空值: 对此: 这是我使用的规范: 这是我使用的代码: 我能够使用与上述相同的规范和代码成功转换以下输入: 那么,我需要做什么来转换员工对象数组呢?