在Jackson Spring引导中从JSON响应中排除0



我有一个这样的POJO。

@JsonInclude(JsonInclude.Include.NON_NULL)
@JsonIgnoreProperties(ignoreUnknown = true)
public class Test {
private int a;
private String b;
}

如果属性"a"的值为0,我希望排除它。字符串b被排除在外

@JsonInclude(JsonInclude.Include.NON_NULL)

我唯一能做的就是将int数据类型转换为Integer Object,并在setter中显式地将值设置为NULL(如果值为0(。

将感谢任何其他建议或正确的解决方案

选项1:

照你说的做:将int更改为Integer,然后使用@JsonInclude(Include.NON_NULL)。因为基元类型有默认值,并且它们的值不能与null进行比较,所以必须将int包装为Integer。请参见基本数据类型。嗯,这是更干净的方式。

选项2

使用本答案中描述的方法,改为使用@JsonInclude(Include.NON_DEFAULT)(请参阅Jackson-annotifications API(,这样将忽略默认值(以及对象的null值(。


注意

如果您只想在具有null-/默认值时排除特定字段(在您的情况下为int/Integer-a-字段(,而当其他字段具有null-/默认值,则应包括其他字段(在我们的情况下,为String-b-字段(。

最新更新