使用 jsonpath 获取父节点

Aum*_*adi 4 jsonpath

使用节点 JSONPath,如何从子节点值中获取父节点名称

{
  "store": {
    "book": [
      {
        "id":"1",
        "author": "Nigel Rees",
        "title": "Sayings of the Century",
        "price": 8.95
      },
      {
        "id":"2",
        "author": "Evelyn Waugh",
        "title": "Sword of Honour",
        "price": 12.99
      }
    ]
  }
}
Run Code Online (Sandbox Code Playgroud)

我用这个表达式根据值来识别子节点,我想用这个子节点来找到父节点

$.[?(@.id =="1")]
Run Code Online (Sandbox Code Playgroud)

Jay*_*ard 8

您没有指定 JSON Path 的哪个实现,但是对于 Gatling (Scala) 和 JayWay (Java),您可以使用嵌套过滤器在返回父级、祖父级或其他任何内容的同时按子级过滤。这是一个示例:

使用这个 JSON:

{
  "a": {
    "b": {
        "c": {
            "d": {
                "e": "foo"
            }
        },
        "something": "bar"
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

而这条路:

$.a.b[?(@.c[?(@.d[?(@.e == "foo")])])].something
Run Code Online (Sandbox Code Playgroud)

返回:

[ "bar" ]
Run Code Online (Sandbox Code Playgroud)

我可以b通过使用表达式来检索较低的节点作为过滤器。

其他一些实现在这些表达式上出错。