[英]JSONPath - Filter expression is not working as expected
无法让 JSONPath 工作。
JSON:
{
"data": [
{
"meta": {
"definition": {
"title": "ID",
"type": "text",
"key": "657876498"
}
},
"attributes": {
"id": "8606798",
"name": "ID",
"content": {
"value": "ABC"
}
}
}
]
}
小路:
$.data[*].attributes[?(@.name=='ID')]
在jsonpath.com或在 python 中使用jsonpath-ng
时返回不匹配。
我从根本上错过了什么,这个过滤器不起作用?
注意:最终目标是获取name
和content.value
。
编辑:
在https://jsonpath.herokuapp.com/路径实际上有效。 嗯...实现依赖?
事实上,这似乎是 jsonpath-ng 实现的一个特质。 看起来“过滤器操作只能用于列表” ,即可迭代。
作为一种解决方法,我们可以过滤data
-array 并在之后提取attributes
:
$.data[?(@.attributes.name="ID")].attributes
这与使用您的路径的 Jayway 的 JsonPath 给出相同的结果; 但是,这种方法可能并非在所有情况下都令人满意。
请尝试以下路径获取name
和content.value
值
$.data[:0].attributes.name
$.data[:0].attributes.content.value
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.