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

如何使用ObjectMapper将JSON嵌套属性转换为对象

嵌套JSON转对象的几种实现方法

针对你现在的嵌套JSON结构,有以下几种方式可以实现和之前一样的转换效果:

方法一:直接提取嵌套节点解析

先把整个JSON解析成JsonNode,再提取出something对应的节点,最后转成SomethingDTO:

JsonNode rootNode = objectMapper.readTree(myJson);
JsonNode somethingNode = rootNode.get("something");
SomethingDTO somethingDto = objectMapper.treeToValue(somethingNode, SomethingDTO.class);

方法二:用包装类承接

创建一个包装类来对应外层的JSON结构,解析后再取出目标对象:

// 定义包装类
public class SomethingWrapper {
    private SomethingDTO something;

    // 生成getter和setter方法
    public SomethingDTO getSomething() {
        return something;
    }

    public void setSomething(SomethingDTO something) {
        this.something = something;
    }
}

// 解析代码
SomethingWrapper wrapper = objectMapper.readValue(myJson, SomethingWrapper.class);
SomethingDTO somethingDto = wrapper.getSomething();

方法三:通过注解自动解包(需修改DTO类)

如果允许修改SomethingDTO,可以用Jackson的@JsonRootName注解,配合开启解包配置来直接解析:

// 修改你的SomethingDTO类
import com.fasterxml.jackson.annotation.JsonRootName;

@JsonRootName("something")
public class SomethingDTO {
    private String color;

    // 生成getter和setter方法
}

// 解析时配置ObjectMapper
objectMapper.enable(DeserializationFeature.UNWRAP_ROOT_VALUE);
SomethingDTO somethingDto = objectMapper.readValue(myJson, SomethingDTO.class);

内容的提问来源于stack exchange,提问作者André Santaló

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.25 23:42:41