获取json数组中的json对象计数

时间:2018-04-03 06:29:05

标签: java json rest rest-assured

从下面的json Response中,视图数组包含多个对象。 使用放心,我如何迭代视图数组中的json对象

使用的代码

Response response = RestAssured.given().when().get(getURL);
  ArrayList<Map<String,Object>> jsonList = response.jsonPath().get("views");
  jsonList.size();
  //It returns size 1


[{
        gameIfd: 2018916,
        gameIdGlobal: 1948141,
        views: [{
                name: "Preview",
                displayOrder: 1,
                groups: [],
                actions: [],
                localizedName: {}
            },{
                name: "Thumbnail",
                displayOrder: 2,
                groups: [],
                actions: [],
                localizedName: {}
            }

        ]
    }
]

2 个答案:

答案 0 :(得分:0)

我发现了这种方式

Response response = RestAssured.given().when().get(getURL);
JsonPath pathResponse = response.jsonPath();
List<String> key = pathResponse.getList("views[0]");

  System.out.println(key.size()); //Whcih prints the jsonobjects inside views array

答案 1 :(得分:0)

您的主要JSON响应是一个列表。因此,当您致电response.jsonPath().get("views")时,它会为您提供主列表中所有对象的所有views列表。不应分配给ArrayList<Map<String, Object>>,而应将其分配给ArrayList<ArrayList<Map<String,Object>>>,如下所示:

     ArrayList<ArrayList<Map<String,Object>>> jsonList = 
                                       response.jsonPath().get("views");

然后您可以将第一个对象的views列表设为:

jsonList.get(0).size()

response.jsonPath().get("views[0]")还为您提供了第一个对象的views列表。