【问题标题】:Verify field value for each list item in a REST response验证 REST 响应中每个列表项的字段值
【发布时间】:2015-06-08 13:18:11
【问题描述】:

假设我们有以下 json 响应:

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

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

现在我正在使用:

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

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

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

【问题讨论】:

  • 您能分享一下您是如何获得 HashMap 列表的吗?
  • 导入静态 com.jayway.restassured.path.json.JsonPath.from 并使用问题中所述的 from。

标签: java rest rest-assured


【解决方案1】:

我想这是我们能做的最好的了

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

【讨论】:

    【解决方案2】:

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

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

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

    【讨论】:

      猜你喜欢
      • 2017-12-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-20
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多