0

我正在使用 Jackson 2.4.3 和,ObjectMapper它被配置为排除空属性(排除以前的空属性可以正常工作,但如果我的过滤器跳过了属性值,仍然会出现在 JSON 中。最后,我有一个带有空属性的 JSON 文件,这是非常不可接受的:JsonInclude.Include.NON_EMPTYPropertyFilter

{"configurationPropertyList":{ 
"someProperty":{},
"someList":[{}, {}, {}]
}
}

有没有办法摆脱那些空属性?

让我还要补充一点,最后 JSON 相当大且复杂,出于性能原因,JSON 应该由 Jackson 自己生成,无需任何额外工作。我试图找到尽可能简单的解决方案。

4

1 回答 1

2

这里的问题是过滤适用于输入 Java 对象,而不适用于构造的 JSON;这意味着尽管对象的大部分内容可能会被过滤(结果 JSON 对象为空),但对象本身不是空的。

有一些正在进行的工作(将在 2.5 中完成)可能允许更好的处理,并且可能至少在java.util.Maps 中处理过滤的嵌套性质。但目前,还没有进一步修剪内容的自动化解决方案。

于 2014-12-03T00:24:21.063 回答