1

我有一个匿名对象数组,我想通过特定字段查找对象。

我试过这个:

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

3 回答 3

3

这个问题有点模棱两可,但是语法不正确,Json path语法使用Groovy's GPath符号

js.getString("find {it.name == 'David'}")
于 2020-09-14T16:13:27.850 回答
0

你可能需要

$.[?(@.name == 'David')]

=>  $.data[?(@.name == 'David')]
    $.response[?(@.name == 'David')]
    $.body[?(@.name == 'David')]
    ...

名称取决于您提取回复的时间

于 2020-09-14T14:56:31.173 回答
0

因为您使用的是 json Array ,所以请使用 - $[0] ,因为 david 在第一个索引上。

于 2020-09-14T14:56:43.817 回答