Springboot Jackson通用数据类型序列化

时间:2018-01-05 11:13:27

标签: spring-boot serialization jackson

我有一个班级

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
               }
}

它采用变量名称的名称。我希望jackson采用@JsonRootName值而不是变量名。但我想我在这里错过了一些东西。

1 个答案:

答案 0 :(得分:0)

使用@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;
    }
}