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

Java如何遍历嵌套JSON并提取各属性对应的type嵌套值

Java遍历嵌套JSON提取type字段解决方案

方案1:基于现有代码修改

你现有代码中读取到的Map的value本身就是嵌套的Map结构,直接强转后提取type字段即可,修改遍历部分代码如下:

map.forEach((key, value) -> {
    // 把value强转为嵌套的Map结构
    Map<String, Object> nestedMap = (Map<String, Object>) value;
    String typeValue = (String) nestedMap.get("type");
    System.out.println(key + "对应的type值为:" + typeValue);
});

方案2:更稳妥的JsonNode实现(推荐)

可以直接用ObjectMapper读取文件为JsonNode,无需额外的类型转换,代码更简洁安全,完整实现代码如下:

import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;
import java.io.File;

public class JSONReadExample {
    public static void main(String[] args) throws Exception {
        ObjectMapper objectMapper = new ObjectMapper();
        // 直接读取文件解析为JsonNode
        JsonNode rootNode = objectMapper.readTree(new File("myFile.json"));
        // 遍历根节点的所有属性
        rootNode.fields().forEachRemaining(entry -> {
            String propKey = entry.getKey();
            JsonNode nestedNode = entry.getValue();
            // 直接取嵌套的type字段值
            String typeValue = nestedNode.get("type").asText();
            System.out.println(propKey + "对应的type值为:" + typeValue);
        });
    }
}

注意事项

  • 若存在部分属性缺少type字段的场景,可先做非空判断再取值,避免空指针异常
  • 该方案依赖Jackson的databind包,需确保项目中已引入对应依赖

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 11:45:04