从json对象数组中提取元素

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了从json对象数组中提取元素相关的知识,希望对你有一定的参考价值。

我下面有json响应。在layer2对象数组的响应下方,可以有x个项目

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

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

我有以下代码可以在其中检索对象数组。是否可以在下面的输出中检索到上面。

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

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

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

PS:我尚未测试此代码,但从逻辑上讲应该可以。

以上是关于从json对象数组中提取元素的主要内容,如果未能解决你的问题,请参考以下文章

从 postgres 表中提取 json 数组给出错误:无法从标量中提取元素

JSON 字符串数组(无对象),提取数据

如何从配置单元表中的json字符串中提取数组元素?

从 MySQL JSON 列中提取 JSON 对象的值作为数组

从 Json 数组中提取 JSON 对象到 mysql 8

从 JSON 数组中提取数据以创建 3 个不同的数组