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"
}
]
我正在尝试编写一个 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"
}
]