使用jackson从json中删除空值

时间:2016-05-04 05:19:28

标签: java json jackson jersey-2.0

我正在尝试从我的json中删除所有空值。

{
   "key" : null
}

我用过:

ObjectMapper mapper = new ObjectMapper();
mapper.setSerializationInclusion(Include.NON_NULL);

这里“key”是一个列表,所以当我使用上面的序列化选项时,json会转换为:

{
   "key" : []
}

我希望json成为:

{
}

我不想使用

Include.NON_EMPTY

因为我在我的项目中有其他json,我需要显示空列表和0值键。当它是一个列表时,有没有办法删除空值键,就像它对字符串值一样?

我无法使用注释,因为使用jaxb从xml生成类文件。班级结构:

public class C1 {

protected List<C2> key;

public List<C2> getKey() {
    if (key == null) {
        key = new ArrayList<C2>();
    }
    return this.key;
}

}

我已经被困了一段时间了。任何帮助都非常感谢。提前谢谢。

1 个答案:

答案 0 :(得分:4)

禁止使用null值序列化属性

您可以直接使用此配置ObjectMapper

mapper.setSerializationInclusion(Include.NON_NULL);