[英]How to exclude empty objects from Jackson ObjectMapper?
基本上我不希望任何空的 JSON 数组或对象出现在我生成的 JSON 文件中。 我已经使用以下方法相应地配置了我的 ObjectMapper:
objectMapper.setSerializationInclusion(Include.NON_EMPTY);
这适用于数组、集合和字符串。 但是,如果我有一个空对象(= 所有属性为空或为空),它仍会显示在生成的 JSON 中,如下所示:
"MyObject":{}
这是我对空对象的含义的一个可能示例:
class MyClass
{
String property1 = "";
Object property2 = null;
}
在这种情况下,我希望从生成的 JSON 文件中完全排除对象。
这可能吗? 如果是,我必须如何配置我的 ObjectMapper 才能获得所需的行为?
忽略空值,例如您可能已经初始化了 arrayList 但该列表中没有元素。 在那个时候使用 NOT_EMPTY 注释忽略那些空值字段
@JsonInclude(Include.NON_EMPTY)
class Foo
{
String bar;
}
自从提出这个问题已经有几年了,但我点击此页面寻找解决方案。 所以在这里。
你需要用 NON_DEFAULT 注释你的类:
@JsonInclude(NON_DEFAULT)
class MyClass
{
String property1 = "";
Object property2 = null;
}
正如文档中明确指出的那样,全局配置是不够的: http : //fasterxml.github.io/jackson-annotations/javadoc/2.7/com/fasterxml/jackson/annotation/JsonInclude.Include.html#NON_DEFAULT
新的 NON_DEFAULT 从 2.7 开始可用
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.