用于基于子对象值选择对象的JsonPath表达式是什么?

时间:2019-04-29 16:31:03

标签: jsonpath jayway

我需要能够根据子元素中的值选择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”条目。提前谢谢。

0 个答案:

没有答案