我需要能够根据子元素中的值选择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 =='生产者'&& @ .value =='beta')])])
和
$。topLevelArray [?(@ .keyValuePairs [?(@。key =='生产者'&& @ .value =='beta')])]
不幸的是,两者都返回了列表中的所有内容,包括带有Producer的“ alpha”条目。提前谢谢。