You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Java读取含内部对象数组的HashMap并提取值存入新HashMap

解决Java中从嵌套HashMap提取指定值的问题

你的问题核心错误在于对result类型的判断:JSON结构里的result是数组(即便仅包含一个元素),但你之前的代码直接将其强转为HashMap,这会导致类型转换异常。

正确提取步骤及代码

  1. 先将response中的result取出并转为List(JSON数组在Java中通常被解析为List类型)
  2. 取出数组中的第一个对象(你明确结果内部仅包含一个对象)
  3. 从该对象中获取desc对应的HashMap
  4. 提取value1和value2存入目标HashMap

代码示例:

// 获取result对应的List(JSON数组解析后对应Java List)
List<HashMap> resultList = (List<HashMap>) response.get("result");
// 取数组中的第一个元素
HashMap resultObj = resultList.get(0);
// 获取desc对象
HashMap desc = (HashMap) resultObj.get("desc");
// 提取值存入目标map
map.put("value1", desc.get("value1"));
map.put("value2", desc.get("value2"));

额外注意

你提供的JSON结构存在语法错误,value2的键值对写法不完整,正确格式应为:

{
    "result": [
        {
            "desc": {
                "value1": "",
                "value2": ""
            }
        }
    ]
}

若原始JSON格式错误,解析过程会抛出异常,需先确保JSON结构合法。

内容的提问来源于stack exchange,提问作者user20848574

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.07 05:35:19