Извлечь элемент из массива json объектов - PullRequest
0 голосов
/ 05 мая 2020

У меня есть ниже json ответ. Ниже ответа для массива объектов слоя 2 может быть x количество элементов

{"data": {
        "layer1": {
            "layer2": [
                {
                    "item1": "result1",
                    "item2": "result2"
                },
                {
                    "item1": "result3",
                    "item2": "result4"
                }
                ]
            }
        }
}

Мое требование: если я знаю значение одного элемента (например, item1 значение результат4 ​​), как мне получить значение элемента соответствия item1, которое равно result3 .

У меня есть приведенный ниже код, из которого я могу получить массив объектов. Возможно ли получить результат выше с выводом ниже.

List<Object> actual = response.jsonPath().getList("data.layer1.layer2");

1 Ответ

1 голос
/ 05 мая 2020

Я думаю, вы имели в виду, что если item2 равен result4, тогда найдите item1. С помощью кода, который вы написали, вы можете перебирать список и приводить тип объекта для сопоставления и проверять, существует ли item2 со значением result4, а затем получить item1.

for(Object item: actual)
{
     if(((Map)item).get("item2").equals("result4")){
        return ((Map)item).get("item1");
     } 
}

PS: Я не тестировал этот код, но логически это должно работать.

...