我有一个Java对象,我想序列化为JSON。但是,在我这样做之前,我在该对象的字段上设置了一些属性。现在我想将此对象序列化为JSON。如何仅序列化明确赋值的字段并基本上排除所有其他字段?
对我来说,在对象类上方添加这些注释不起作用:@JsonSerialize(include = JsonSerialize.Inclusion.NON_EMPTY)
和@JsonSerialize(include = JsonSerialize.Inclusion.NON_NULL)
。原因是我有原始数据类型的字段。通过添加上述两个注释之一,我不会阻止原始数据类型字段被序列化。例如,我有几个布尔字段将使用其默认值false
进行序列化。但是,我不希望这些字段出现在JSON结果中,因为我没有在序列化过程之前显式设置它们的值。有什么想法吗?
有关详细信息:我正在使用Jackson ObjectMapper。
答案 0 :(得分:2)
从Jackson 2.6开始,将@JsonInclude
与Include.NON_DEFAULT
一起使用。
表示仅具有不同值的属性的值 来自默认设置(意味着当Bean为时它们具有的值) 用其无参数构造函数构造)将被包括在内。
杰克逊将创建一个类的一次性实例,以便它可以验证哪些属性值与默认值不同,并且仅序列化这些属性。