Spring Boot Jackson 通用数据类型序列化
Posted
技术标签:
【中文标题】Spring Boot Jackson 通用数据类型序列化【英文标题】:Springboot Jackson Generic data type serialize 【发布时间】:2018-06-15 04:43:51 【问题描述】:我有课
public class ResponseWrapper<T>
private T mObject;
/**
* @return the mObject
*/
public T getmObject()
return mObject;
/**
* @param mObject the mObject to set
*/
public void setData(T mObject)
this.mObject = mObject;
T
是我设置的泛型类型对象。所以我会像
ResponseWrapper<Dog> responseWrapper = new ResponseWrapper();
responseWrapper.setData(new Dog())
在 Dog 类中,我使用 @JsonRootName("dog")
对其进行了注释
我的问题是,我希望 JSON 输出应该类似于 ResponseWrapper
"dog":
"dogId": 19
但我的 JSON 就像
"mObject":
"dogId": 19
它采用变量名的名称。我希望杰克逊采用 @JsonRootName 值而不是变量名。但我想我在这里遗漏了一些东西。
【问题讨论】:
你有UNWRAP_ROOT_VALUE set
吗?
我有这个设置 spring.jackson.deserialization.unwrap-root-value=true。
【参考方案1】:
使用@JsonPoperty
:
public class ResponseWrapper<T>
@JsonProperty("dog")
private T mObject;
/**
* @return the mObject
*/
public T getmObject()
return mObject;
/**
* @param mObject the mObject to set
*/
public void setData(T mObject)
this.mObject = mObject;
【讨论】:
如果我把@JsonProperty 我只会得到“狗”作为根节点。以上是关于Spring Boot Jackson 通用数据类型序列化的主要内容,如果未能解决你的问题,请参考以下文章