使用Jackson有条件地忽略原始类型字段
问题内容:
简短的问题 :是否有一种方法可以根据杰克逊中的值来选择对字段进行序列化?有没有办法告诉杰克逊,类似“如果某个整数字段的值为0,请不要序列化它”。
(如果您理解我的意思,请跳过以下内容)
长问题 aka又 为什么我想做这样的事情 :说我有一个Spring MVC模型类
@JsonSerialize(include=JsonSerialize.Inclusion.NON_NULL)
public class Foo {
int a0;
int a1;
.
.
.
int a99;
String c;
//getters and setters
}
对于的新对象Foo
,全部int
将初始化为0,初始化String
为null
。因此,如果我序列化该对象,int
由于,我只会得到结果,全部设置为0
@JsonSerialize(include=JsonSerialize.Inclusion.NON_NULL)
。
在实际操作中,说我只需要回答 一些 a1 …
a99,例如a20到a26,并设置为一些有意义的值(对我来说,它不是0)。仅发送这些字段是明智的,对吗?
为此,我可以随时将int
声明更改为Integer
。但是,我有很多在整数数值计算的,并琢磨过网了一下,遇到像链接,而这个和这个,我还挺想坚持的基本类型。是否存在可以同时满足我的需求的解决方案?
问题答案: