我已经跟踪了两个对象
@JsonInclude(JsonInclude.Include.NON_EMPTY)
@Data
Class Alpha{
String a;
String b;
String c;
}
@JsonInclude(JsonInclude.Include.NON_EMPTY)
@Data
Class Gamma{
String xxx;
Alpha alpha;
String yyy;
}
现在,如果Gamma是我的API响应,其示例化如下所示。
Gamma gamma = new Gamma();
gamma.setXxx("val1");
gamma.setYyy("val2");
gamma.setAlpha(new Alpha()); // For this example all values in alpha are null
在本例中,API客户端收到以下响应
{
"xxx": "val1",
"yyy": "val2",
"alpha":{}
}
这里的空“Alpha”属性就是问题所在。
理想的解决方案IDELL方式是,如果Alpha
对象的所有属性都为空,则不初始化该对象。
但对于这个问题,我过度简化了我的应用程序逻辑。
我有一些后端代码,在某些情况下可以有一个空的Alpha
对象。
我的问题是
对于Alpha
类型的对象,当JsonInclude.Include.NON_EMPTY
存在时,我如何重写Jackson检查该对象的非空的行为
比如覆盖/注解某个isEmpty()
方法。但只适用于特定的班级。
1条答案
按热度按时间hgb9j2n61#
这对我很管用