基本上我不希望任何空的JSON数组或对象显示在我生成的JSON文件中。我已经使用以下方法相应地配置了我的ObjectMapper:
objectMapper.setSerializationInclusion(Include.NON_EMPTY);
这适用于数组,集合和字符串。 但是,如果我有一个空对象(=所有属性为null或为空),它仍将显示在生成的JSON中,如下所示:
"MyObject":{}
这是我对空对象的一个可能的例子:
class MyClass
{
String property1 = "";
Object property2 = null;
}
在这种情况下,我希望从生成的JSON文件中完全排除该对象。
这可能吗?如果是,我如何配置我的ObjectMapper以获得所需的行为?
答案 0 :(得分:0)
要忽略空值,例如您可能已经初始化了arrayList,但是该列表中没有元素。那时使用NOT_EMPTY批注忽略那些空值字段
@JsonInclude(Include.NON_EMPTY)
class Foo
{
String bar;
}
答案 1 :(得分:-2)
问题问题已经过了几年,但我点击这个页面寻找解决方案。所以就是这样。
您需要使用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以来可用。