从 json 对象数组中提取元素

Extract element from json object array

我有以下 json 回复。在第 2 层对象数组的响应下方可以有 x 个项目

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

我的需求是如果我知道一个元素的值(例如item1result4),如何获取item1的对应项值这是 result3.

我有以下代码可以检索对象数组。是否可以用下面的输出检索上面的内容。

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

我想你的意思是如果 item2 是 result4 则找到 item1。使用您编写的代码,您可以迭代列表并将对象类型转换为映射并检查 item2 是否存在值为 result4 然后获取 item1.

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

PS:我没有测试过这段代码,但从逻辑上讲它应该可以工作。