我正在尝试将JSON文件转换为可以稍后转换为csv或xml的内容。我的JSON文件如下所示:
{
"meta": {
"contentType": "Response"
},
"content": {
"_type": "Response",
"data": {
"_type": "ObjectList",
"meta": {
"_type": "ObjectListMeta"
},
"DataObjects": [
{
"head": {
"fields": {
"id": {
"value": "24"
},
"name": {
"value": ""
}
}
},
"table": [
{
"number": 1,
"fields": {
"height": {
"value": 500,
"text": "500"
},
"average": {
"value": -2,
"text": "-2"
}
}
},
{
"number": 2,
"fields": {
"height": {
"value": 99999,
"text": "99999"
},
"average": {
"value": -5,
"text": "-5"
}
}
}
]
}
]
}
}
}
}
我希望输出看起来像这样:
[
{
"id" : "24",
"name" : "",
"height" : 500,
"average" : -2
},
{
"id" : "24",
"name" : "",
"height" : 99999,
"average" : -5
}
]
我尝试了以下JOLT规范:
[
{
"operation": "shift",
"spec": {
"content": {
"data": {
"DataObjects": {
"*": {
"head": {
"fields": {
"id": {
"value": "[&4].id"
},
"name": {
"value": "[&4].name"
}
}
},
"table": {
"*": {
"fields": {
"height": {
"value": "[&5].height"
},
"average": {
"value": "[&5].average"
}
}
}
}
}
}
}
}
}
}
]
但是我只得到以下输出:
[ {
"id" : "24",
"name" : "",
"height" : [ 500, 99999 ],
"average" : [ -2, -5 ]
} ]
这不是我想要的。我该如何修改规格以获得所需的输出?
答案 0 :(得分:0)
您可以将 table 列表下的这些属性组合为 多个 各自的对象,用于 一个 head.fields对象如
[
{
"operation": "shift",
"spec": {
"content": {
"*": {
"DataObjects": {
"*": {
"table": {
"*": {
"@(2,head.fields.id.value)": "[&].id",
"@(2,head.fields.name.value)": "[&].name",
"@(0,fields.height.value)": "[&].height",
"@(0,fields.average.value)": "[&].average"
}
}
}
}
}
}
}
}
]