验证 REST 响应中每个列表项的字段值
Verify field value for each list item in a REST response
假设我们有以下 json 响应:
{
"data":
[
{
"id": 1,
"name": "Pablo"
},
{
"id": 2,
"name": "Ernesto"
}
]
...
}
其中数据列表可以包含更多对象。如果我在哪里验证没有名称字段设置为 null,那么这样做的 Rest Assured 方法是什么?
现在我正在使用:
from(response.asString()).get("data");
获取 HashMap 的列表,然后从那里继续处理每个条目。但我想还有其他更有效的方法吗?
Edit/Clarification:我想知道是否有一种方法可以在不创建地图列表的情况下做到这一点?
我想这是我们能做的最好的了
List<HashMap> data = from(response.asString()).get("data");
for(HashMap map: data){
if(map.get("name") == null){
// null name found
}
}
// No null name found
好的,所以也许我应该更仔细地阅读文档,这是最简单(也是预期的)检索方式,例如所有名称值(如在我的示例中)都是像这样使用 JsonPath:
List<Object> names = from(response.asString()).get("data.name");
所以除了使用 JsonPath.from().get() 然后从那里开始之外,Rest-Assured 库中没有神奇的实用方法可以做到这一点。
假设我们有以下 json 响应:
{
"data":
[
{
"id": 1,
"name": "Pablo"
},
{
"id": 2,
"name": "Ernesto"
}
]
...
}
其中数据列表可以包含更多对象。如果我在哪里验证没有名称字段设置为 null,那么这样做的 Rest Assured 方法是什么?
现在我正在使用:
from(response.asString()).get("data");
获取 HashMap 的列表,然后从那里继续处理每个条目。但我想还有其他更有效的方法吗?
Edit/Clarification:我想知道是否有一种方法可以在不创建地图列表的情况下做到这一点?
我想这是我们能做的最好的了
List<HashMap> data = from(response.asString()).get("data");
for(HashMap map: data){
if(map.get("name") == null){
// null name found
}
}
// No null name found
好的,所以也许我应该更仔细地阅读文档,这是最简单(也是预期的)检索方式,例如所有名称值(如在我的示例中)都是像这样使用 JsonPath:
List<Object> names = from(response.asString()).get("data.name");
所以除了使用 JsonPath.from().get() 然后从那里开始之外,Rest-Assured 库中没有神奇的实用方法可以做到这一点。