我对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:无法获取属性&#39; name&#39;在null对象,所以我认为我的语法
有问题以下代码有效,但我必须按照序号查找列表中的元素(在本例中为&#39; 0&#39;),当我想通过&#39;命名&#39;字段
final List<Map<String,?>> object = from(json).get("");
assertThat(object.get(0).get("name"), IsEqual.<Object>equalTo("RideA"));
非常感谢任何帮助!
答案 0 :(得分: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'}");