我有以下格式的 JSON 文件。
{
"queryResponse":[
{
"id":"1",
"name":"Parent1",
"childList":[
{
"id":"11",
"type":"A"
},
{
"id":"12",
"type":"B"
}
]
},
{
"id":"2",
"name":"Parent2",
"childList":[
{
"id":"21",
"type":"B"
},
{
"id":"22",
"type":"C"
}
]
}
]
}
Run Code Online (Sandbox Code Playgroud)
使用 jayway JsonPath,如何获取所有具有“B”类型子节点的父节点?
这些过滤器表达式返回一个空数组:
唯一最接近我想要的过滤器表达式是带有数组索引的表达式:$.queryResponse[?(@.childList[0].type=='A')]
使用contains或in操作员
$.queryResponse[?(@.childList[*].type contains 'B')]
Run Code Online (Sandbox Code Playgroud)
或者
$.queryResponse[?('B' in @.childList[*].type )]
Run Code Online (Sandbox Code Playgroud)