JsonPath 过滤器查询语法

JsonPath filter query syntax

我正在尝试编写一个 Json路径查询,该查询 select 是一个基于条件的特定对象,但是要么我的语法失败了,要么我的语法失败了。

给定以下 Json 对象,我如何 select 基于 Dirk Gently 使用“Stumble”方法这一事实包含其详细信息的“数据”对象?

{
  "Investigators": [
    {
      "Type": "Legend",
      "Object": {
        "Method": "Investigate",
        "Data": {
          "Name": "Sherlock",
          "Surname": "Holmes"
        }
      }
    },
    {
      "Type": "Visionary",
      "Object": {
        "Method": "Stumble",
        "Data": {
          "Name": "Dirk",
          "Surname": "Gently"
        }
      }
    }
  ],
  "Version": 1
}

我知道我可以像这样进入方法字段:

$.Investigators..Object.Method 

我认为这样的事情会奏效:

  $.Investigators..Object[?(@.Method=="Stumble")].Data 

我正在使用以下方法对此进行测试:https://jsonpath.com/ 来评估查询 - 但我似乎做错了。

我是在尝试做一些无法实现的事情,还是犯了一个愚蠢的错误?

转到 this jsonpath online sandbox 并尝试这个表达式:

 $.Investigators..Object[?(@.Method=="Stumble")].Data

使用 Jayway 或 Gatling 实现,输出将是:

[
   {
      "Name" : "Dirk",
      "Surname" : "Gently"
   }
]