[英]JSON: Make Jackson only serialise fields that were explicitly set for an object
我有一个要序列化为JSON的Java对象。 但是,在执行此操作之前,我在该对象的字段上设置了一些属性。 现在,我想将此对象序列化为JSON。 如何仅序列化明确分配了值并基本上排除所有其他字段的字段?
对我来说,在对象类上方添加这些注释不起作用: @JsonSerialize(include = JsonSerialize.Inclusion.NON_EMPTY)
和@JsonSerialize(include = JsonSerialize.Inclusion.NON_NULL)
。 原因是我的字段具有原始数据类型。 通过添加以上两个注释之一,我不会阻止原始数据类型字段被序列化。 例如,我有几个布尔字段将使用其默认值false
进行序列化。 但是,我不希望这些字段出现在JSON结果中,因为我没有在序列化过程之前显式设置它们的值。 有什么想法吗?
有关更多信息:我正在使用Jackson的ObjectMapper。
从Jackson 2.6开始,将@JsonInclude
与Include.NON_DEFAULT
@JsonInclude
使用。
指示仅包含具有与默认设置不同的值的属性的值(意味着当使用无参数构造函数构造Bean时具有的值)。
杰克逊将创建一个类的一次性实例,以便它可以验证哪些属性值与默认值不同,并仅序列化这些值。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.