JsonPath:按字段查找数组中的元素
JsonPath: find an element in an array by field
我有一个匿名对象数组,我想按特定字段查找对象。
我试过这个:
jsonPath.get("$.[?(@.name == 'David')]")
但我收到以下错误:
Invalid JSON expression:
Script1.groovy: 1: Unexpected input: ' $.[' @ line 1, column 29.
$.[?(@.name == 'David')]
^
1 error
我该如何解决?
json是:
[
{"name": "David"}, {"name": "Ron"}, {"name": "Dana"}
]
您可能需要
$.[?(@.name == 'David')]
=> $.data[?(@.name == 'David')]
$.response[?(@.name == 'David')]
$.body[?(@.name == 'David')]
...
名称取决于您提取回复的时间
因为您正在使用 json 数组,
使用 - $[0] ,
因为大卫在第一个索引上。
问题有点歧义,但是语法不对,Json path
语法使用了Groovy's GPath
表示法
js.getString("find {it.name == 'David'}")
我有一个匿名对象数组,我想按特定字段查找对象。
我试过这个:
jsonPath.get("$.[?(@.name == 'David')]")
但我收到以下错误:
Invalid JSON expression:
Script1.groovy: 1: Unexpected input: ' $.[' @ line 1, column 29.
$.[?(@.name == 'David')]
^
1 error
我该如何解决?
json是:
[
{"name": "David"}, {"name": "Ron"}, {"name": "Dana"}
]
您可能需要
$.[?(@.name == 'David')]
=> $.data[?(@.name == 'David')]
$.response[?(@.name == 'David')]
$.body[?(@.name == 'David')]
...
名称取决于您提取回复的时间
因为您正在使用 json 数组, 使用 - $[0] , 因为大卫在第一个索引上。
问题有点歧义,但是语法不对,Json path
语法使用了Groovy's GPath
表示法
js.getString("find {it.name == 'David'}")