Mat*_*sch 13 java serialization json jackson
基本上我不希望任何空的JSON数组或对象显示在我生成的JSON文件中.我已经使用以下方法相应地配置了我的ObjectMapper:
objectMapper.setSerializationInclusion(Include.NON_EMPTY);
Run Code Online (Sandbox Code Playgroud)
这适用于数组,集合和字符串.但是,如果我有一个空对象(=所有属性为null或为空),它仍将显示在生成的JSON中,如下所示:
"MyObject":{}
Run Code Online (Sandbox Code Playgroud)
这是我对空对象的一个可能的例子:
class MyClass
{
String property1 = "";
Object property2 = null;
}
Run Code Online (Sandbox Code Playgroud)
在这种情况下,我希望从生成的JSON文件中完全排除对象.
这可能吗?如果是,我如何配置我的ObjectMapper以获得所需的行为?
Gen*_*e S -2
自从提出这个问题以来已经有几年了,但我点击此页面寻找解决方案。所以就是这样。
您需要使用 NON_DEFAULT 注释您的类:
@JsonInclude(NON_DEFAULT)
class MyClass
{
String property1 = "";
Object property2 = null;
}
Run Code Online (Sandbox Code Playgroud)
正如文档中明确指出的那样,全局配置是不够的: http://fasterxml.github.io/jackson-annotations/javadoc/2.7/com/fasterxml/jackson/annotation/JsonInclude.Include.html#NON_DEFAULT
新的 NON_DEFAULT 从 2.7 开始可用