我正在使用 Jackson ObjectMapper 序列化 POJO。我在 POJO 中嵌套了字段。例如:序列化类 MyClass
public class MyClass {
private A a;
private int i;
//getters and setters
}
public class A {
private String s;
//getters and setters
}
我希望如果 String s
为 null
,则整个属性 A
不会被序列化。也就是说,如果 String s
为 null
,我希望输出为:
{"myClass":{"i":10}}
但我得到的是 {"myClass":{"A":{},"i":10}}
作为输出。
我已经为序列化包含设置了NON_EMPTY
(mapper.setSerializationInclusion(JsonInclude.Include.NON_EMPTY)
),但它并没有解决问题
最佳答案
据我所知,您不能使用标准注释来做到这一点,但是以这种方式更改 MyClass.getA()
方法您应该可以做到这一点。
public A getA() {
if (a.getS() == null)
return null;
return a;
}
关于java - 如果所有嵌套字段都为空,Jackson 将忽略顶级字段的序列化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42622698/