Json Response — доступ к объектам в массиве

Я пытаюсь получить доступ к объекту в ответе Json, но не знаю, как это сделать. Как я могу получить доступ к идентификатору 11, используя уверенность в себе, где ObjID1 и ObjID2 являются уникальными UUID?

       "ObjID1": [
            {
                "ID": "11",
                "NAME": "XYZ",
                "GENDER": "M"
            }
        ]

        "ObjID2": [
            {
                "ID": "12",
                "NAME": "Z",
                "GENDER": "F"
            }
        ]



person teddybearzero    schedule 06.05.2019    source источник


Ответы (1)


Чтобы подтвердить значение элемента, вы можете использовать

then().body("ObjID1.ID[0]", equalTo("11"))

Индексирование поля ID с помощью [0] позволяет получить идентификатор первого объекта JSON в массиве.

Если вы хотите получить это значение для дальнейшей обработки, вы можете извлечь его следующим образом:

JsonPath path = JsonPath.from("json file or json String");
List<HashMap<String, Object>> listOfJsonObjects = path.get("ObjID1");

Мы проанализировали JSON и с помощью метода path.get сохранили массив объектов JSON внутри списка хэш-карт. Каждый элемент в списке является объектом JSON.

Чтобы получить доступ к первому объекту JSON, вы можете использовать

HashMap<String, Object> jsonObject = listOfJsonObjects.get(0);

а затем, используя классические методы HashMap, вы можете получить определенный элемент в объекте JSON следующим образом:

jsonObject.get("ID");

Вышеприведенное вернет "11" Обратите внимание, что вам нужно будет сделать приведение к String, чтобы получить значение. Значения в HashMap являются объектами, поскольку объекты JSON в массиве могут содержать вложенные массивы или объекты.

String firstId = (String) jsonObject.get("ID");
person Fenio    schedule 08.05.2019