Jsonpath:从id列表中获取至少包含一个id的元素列表
Jsonpath: get the list of elements that contain at least one id from a list of ids
具有以下json:
{
"elements": [
{
"ids": [
{
"id": "A"
},
{
"id": "B"
}
],
"value": "one"
},
{
"ids": [
{
"id": "C"
},
{
"id": "D"
}
],
"value": "two"
},
{
"ids": [
{
"id": "E",
},
{
"id": "F",
}
],
"value": "three"
}
]
}
json指向 return 至少包含列表 ['A',[=28= 中的一个 id 的元素列表的路径是什么]]?
如果我专门询问每个id,我可以得到想要的结果:
$.elements[?('A' in @.ids.*.id || 'C' in @.ids.*.id)]
[
{
"ids" : [
{
"id" : "A"
},
{
"id" : "B"
}
],
"value" : "one"
},
{
"ids" : [
{
"id" : "C"
},
{
"id" : "D"
}
],
"value" : "two"
}
]
但在我的场景中,我需要在列表 ['A','C']
中指示 ID 的值
提前致谢!
使用 anyof
filter operator
$.elements[?(@.ids.*.id anyof ['A','C'])]
具有以下json:
{
"elements": [
{
"ids": [
{
"id": "A"
},
{
"id": "B"
}
],
"value": "one"
},
{
"ids": [
{
"id": "C"
},
{
"id": "D"
}
],
"value": "two"
},
{
"ids": [
{
"id": "E",
},
{
"id": "F",
}
],
"value": "three"
}
]
}
json指向 return 至少包含列表 ['A',[=28= 中的一个 id 的元素列表的路径是什么]]?
如果我专门询问每个id,我可以得到想要的结果:
$.elements[?('A' in @.ids.*.id || 'C' in @.ids.*.id)]
[
{
"ids" : [
{
"id" : "A"
},
{
"id" : "B"
}
],
"value" : "one"
},
{
"ids" : [
{
"id" : "C"
},
{
"id" : "D"
}
],
"value" : "two"
}
]
但在我的场景中,我需要在列表 ['A','C']
中指示 ID 的值提前致谢!
使用 anyof
filter operator
$.elements[?(@.ids.*.id anyof ['A','C'])]