反序列化序列化的非对称[JsonInclude]行为

时间:2018-11-14 18:29:54

标签: java serialization jackson

我有一个带有字段的类,其类型为List<String>。 我想在序列化时忽略空列表,以便该字段不显示在我的json中。但是当反序列化时,我希望它的空列表将包含在我的java对象中。 @JsonInclude(Include.NON_EMPTY)在两种情况下都将忽略它。我应该写一个自定义的serializDifferenter吗?最好的方法是什么?

1 个答案:

答案 0 :(得分:0)

为什么不只将Java对象中的List<String>初始化为空的ArrayList<String>,就是这样:

public class JsonTestObject implements Serializable {

    private String propertyOne = null;

    private Integer intProperty = 0;

    @JsonInclude(Include.NON_EMPTY)
    private List<String> stringList = new ArrayList<String>();
}

使用空List进行序列化将产生这种json:

{"propertyOne":"aaaaa","intProperty":1000}

在此json示例进行反序列化后,List<String>将被初始化为一个空列表