繁体   English   中英

JSONPath - 过滤器表达式未按预期工作

[英]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时返回不匹配。

我从根本上错过了什么,这个过滤器不起作用?

注意:最终目标是获取namecontent.value

编辑:

https://jsonpath.herokuapp.com/路径实际上有效。 嗯...实现依赖?

事实上,这似乎是 jsonpath-ng 实现的一个特质。 看起来“过滤器操作只能用于列表” ,即可迭代。

作为一种解决方法,我们可以过滤data -array 并在之后提取attributes

$.data[?(@.attributes.name="ID")].attributes

这与使用您的路径的 Jayway 的 JsonPath 给出相同的结果; 但是,这种方法可能并非在所有情况下都令人满意。

请尝试以下路径获取namecontent.value

$.data[:0].attributes.name
$.data[:0].attributes.content.value

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM