我需要能够根据子元素中的值选择 JSON 文档中的元素,不幸的是,这些子元素位于键值对列表中(这是我必须使用的结构)。我正在使用 Jayway 2.4.0。
这是 JSON 文档:
{
"topLevelArray": [
{
"elementId": "Elem1",
"keyValuePairs": [
{
"key": "Length",
"value": "10"
},
{
"key": "Width",
"value": "3"
},
{
"key": "Producer",
"value": "alpha"
}
]
},
{
"elementId": "Elem2",
"keyValuePairs": [
{
"key": "Length",
"value": "20"
},
{
"key": "Width",
"value": "8"
},
{
"key": "Producer",
"value": "beta"
}
]
},
{
"elementId": "Elem3",
"keyValuePairs": [
{
"key": "Length",
"value": "15"
},
{
"key": "Width",
"value": "5"
},
{
"key": "Producer",
"value": "beta"
}
]
}
]
}
这是我认为可以解决问题的 JsonPath:
$..topLevelArray[ ?( @.keyValuePairs[ ?(@.key=='Producer' && @.value=='beta') ] ) ]
和
$.topLevelArray[ ?( @.keyValuePairs[ ?(@.key=='Producer' && @.value=='beta') ] ) ]
不幸的是,两者都返回列表中的所有内容,包括 Producer 为“alpha”的条目。提前谢谢。