[英]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"}
]
问题有点歧义,但是语法不对, Json path
语法使用Groovy's GPath
表示法
js.getString("find {it.name == 'David'}")
你可能需要
$.[?(@.name == 'David')]
=> $.data[?(@.name == 'David')]
$.response[?(@.name == 'David')]
$.body[?(@.name == 'David')]
...
名称取决于您提取响应的时间
因为您使用的是 json Array ,所以请使用 - $[0] ,因为 david 位于第一个索引上。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.