簡體   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