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

初学者_

无法让 JSONPath 工作。

JSON:

{
  "data": [
    {
      "meta": {
        "definition": {
          "title": "ID",
          "type": "text",
          "key": "657876498"
        }
      },
      "attributes": {
        "id": "8606798",
        "name": "ID",
        "content": {
          "value": "ABC"
        }
      }
    }
  ]
}

路径:

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

jsonpath.comjsonpath-ng在 python 中使用时不返回匹配

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

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

编辑:

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

wp78de

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

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

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

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

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章