繁体   English   中英

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"}
]

问题有点歧义,但是语法不对, 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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM