简短问题:有没有办法根据杰克逊的值来选择性地序列化字段?有没有办法告诉杰克逊,比如“如果某个整数字段的值为0,则不要序列化它。”
(如果你理解我的意思,请跳过以下内容)
长问题又名为什么我要做这样的事情: 假设我有一个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
。但是,我有很多关于整数的数值计算,并且稍微思考网络并遇到像this和this之类的链接,我有点想坚持原始类型。是否存在满足我需求的解决方案?