1

私はRest-assuredとGpathに比較的慣れていません。以下の JSON から、「 RideA」のキーと値を含むマップを取得したいだけです

[{
"state": "open",    
"name": "RideA",
"imageCount": 2
}, 
{
"state": "open",
"name": "RideB",    
"imageCount": 1    
},
{
"state": "open",    
"name": "RideC",    
"imageCount": 2
}]

これまで私は試しました:

final List<Map<String, ?>> object = from(json).get("it.findAll { it.name == 'RideA' }");

しかし、これはjava.lang.IllegalArgumentException: Cannot get property 'name' on null objectを返すため、構文に問題があると思います

以下のコードは機能しますが、「名前」フィールドで要素を検索したい場合は、序数 (この場合は「0」) でリストを使用して要素を検索する必要があります。

final List<Map<String,?>> object = from(json).get("");
assertThat(object.get(0).get("name"), IsEqual.<Object>equalTo("RideA"));

どんな助けでも大歓迎です!

4

1 に答える 1

2

Johan Haleby の助けのおかげで、私はついにこれを理解することができました。

まず、最初のステートメントにわずかな誤りがありました。マップのリストではなく、マップを探すべきだったのです。

final Map<String, ?> object = from(json).get("it.findAll { it.name == 'RideA' }");

「findAll」はリストを返すため、この場合は正しくありません。

この場合の正しいステートメントは次のようになります。

final Map<String, ?> object = from(json).get("find { it.name == 'RideA'}");
于 2015-05-18T10:43:17.993 に答える