[英]Jackson serialize null or empty object
有一个POJO:
class A {
private B b;
}
B:
class B {
private String c;
}
有没有一种使Jackson序列化对象A
的正确方法,使Ab = null
(或者甚至b
所有字段都为空或默认),形式为:
{
b: {}
}
并且无需使用自定义序列化程序。 上层的POJO实际上很复杂,维护串行器带来的麻烦多于好处。
将默认属性Include.NON_NULL
设置为Include.NON_NULL
:
import com.fasterxml.jackson.annotation.JsonInclude.Include;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.SerializationFeature;
import java.io.IOException;
public class JsonApp {
public static void main(String[] args) throws IOException {
ObjectMapper mapper = new ObjectMapper();
mapper.enable(SerializationFeature.INDENT_OUTPUT);
mapper.setDefaultPropertyInclusion(Include.NON_NULL);
System.out.println(mapper.writeValueAsString(new A()));
}
}
class A {
private B b = new B();
public B getB() {
return b;
}
public void setB(B b) {
this.b = b;
}
}
class B {
private String c;
public String getC() {
return c;
}
public void setC(String c) {
this.c = c;
}
}
上面的代码打印:
{
"b" : { }
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.