验证REST响应中每个列表项的字段值

时间:2015-06-08 13:18:12

标签: java rest rest-assured

让我们说我们有以下json响应:

{
   "data":
       [
       {
       "id": 1,
       "name": "Pablo"
       },
       {
       "id": 2,
       "name": "Ernesto"
       }
       ]
       ...
}

数据列表可以包含更多对象。如果我在哪里验证没有名字字段被设置为null,那么Rest Assured的做法是什么?

现在我正在使用:

from(response.asString()).get("data");

获取HashMaps列表,然后从那里继续为每个条目。但我想还有其他一些方法更有效率?

编辑/澄清:我想知道在没有创建地图列表的情况下是否有办法做到这一点?

2 个答案:

答案 0 :(得分:0)

我想这是我们能做的最好的事情

List<HashMap> data = from(response.asString()).get("data");
for(HashMap map: data){
    if(map.get("name") == null){
        // null name found
    }
}
// No null name found

答案 1 :(得分:0)

好的,也许我应该更仔细地阅读文档,这是最简单(和预期)的方法来检索,例如所有名称值(如我的例子中所示)是使用JsonPath,如下所示:

List<Object> names = from(response.asString()).get("data.name");

因此除了使用JsonPath.from()。get()然后从那里开始之外,Rest-Assured库中没有神奇的实用方法可以做到这一点。