我有一个JSON对象,如下所示:
{
"data":{
"list1":[
{
"id":"1",
"description":"abc..",
"title":"abc"
},
{
"id":"2",
"description":"hello..",
"title":"hello"
},
{
"id":"3",
"description":"hello..",
"title":"hello"
},
{
"id":"4",
"description":"hello..",
"title":"hello"
},
{
"id":"5",
"description":"hello..",
"title":"hello"
},
{
"id":"6",
"description":"hello..",
"title":"hello"
}
],
"list2":[
{
"info":"this is list2",
"idList":[
"1",
"3"
]
},
{
"info":"this is list2",
"idList":[
"2",
"4"
]
}
]
}
}
在转换后的JSON中,只要id匹配,我希望list1的所有内容都在list2
的idList
中。
{
"res":{
"data":[
{
"info":"this is list2",
"idList":[
{
"id":"1",
"description":"abc..",
"title":"abc"
},
{
"id":"3",
"description":"hello..",
"title":"hello"
}
]
},
{
"info":"this is list2",
"idList":[
{
"id":"2",
"description":"hello..",
"title":"hello"
},
{
"id":"4",
"description":"hello..",
"title":"hello"
}
]
}
]
}
}
如何使用Jolt Spec来实现这种转换?
[
{
"operation": "shift",
"spec": {
"data": {
"list1": {
"*": {
"id": {
"@(3,list2[&].idList)": {
"@(4,list2[&].idList)": "res.data[&3].idList"
}
}
}
},
"list2": {
"*": {
"info": "res.data[&1].info"
}
}
}
}
}
]
我尝试使用此规范来匹配这两个列表,但是没有得到list1
规范的任何内容。得到的结果只是信息部分:
{
"res" : {
"data" : [ {
"info" : "this is list2"
}, {
"info" : "this is list2"
} ]
}
}
1条答案
按热度按时间5n0oy7gb1#
可以使用此等级库: