Spring Boot Jackson-用根名反序列化Json [英] Spring boot jackson - deserializes Json with root name

查看:141
本文介绍了Spring Boot Jackson-用根名反序列化Json的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有下面的杰森

{
    "user": {
        "name": "Ram",
        "age": 27
    }
}

我想反序列化为类的实例

which I want to de-serialize into an instance of the class

public class User {
    private String name;
    private int age;

    // getters & setters
}

为此,我在类名上使用了@JsonRootName,如下所示:

For this, I have used @JsonRootName on class name and something like below

@Configuration
public class JacksonConfig {

    @Bean
    public Jackson2ObjectMapperBuilder jacksonBuilder() {
        Jackson2ObjectMapperBuilder builder = new Jackson2ObjectMapperBuilder();
        builder.featuresToEnable(DeserializationFeature.UNWRAP_ROOT_VALUE);
        return builder;
    }
}

但是它没有按预期工作.如果我发送如下所示的内容,则可以.

But it did not work as expected. If I send something like below, it worked.

{
 "name": "Ram",
 "age": 27
}

但是我想用根名反序列化json.有人可以建议吗?

But I want to get the json de-serialized with root name. Can any one please suggest?

我想用弹簧引导方式做到这一点.

I want to spring boot way of doing this.

推荐答案

@JsonRootName是一个好的开始.在User类上使用此批注,然后通过添加以下内容来启用UNWRAP_ROOT_VALUE反序列化功能:

@JsonRootName is a good start. Use this annotation on User class and then enable UNWRAP_ROOT_VALUE deserialization feature by adding:

spring.jackson.deserialization.UNWRAP_ROOT_VALUE=true

到您的application.properties. 在 Spring Boot参考

这篇关于Spring Boot Jackson-用根名反序列化Json的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆