Spring Boot Jackson-用根名反序列化Json [英] Spring boot jackson - deserializes Json with root name
问题描述
我有下面的杰森
{
"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屋!