繁体   English   中英

JSON:让Jackson仅序列化为对象明确设置的字段

[英]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开始,将@JsonIncludeInclude.NON_DEFAULT @JsonInclude使用。

指示仅包含具有与默认设置不同的值的属性的值(意味着当使用无参数构造函数构造Bean时具有的值)。

杰克逊将创建一个类的一次性实例,以便它可以验证哪些属性值与默认值不同,并仅序列化这些值。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM