如何解决Jolt规范可在数组内转换JSON数组
我正在尝试将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","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","height" : [ 500,99999 ],"average" : [ -2,-5 ]
} ]
这不是我想要的。我该如何修改规格以获得所需的输出?
解决方法
您可以将 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",fields.average.value)": "[&].average"
}
}
}
}
}
}
}
}
]
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。