【问题标题】:Jackson serialization - get rid of empty properties after filtering杰克逊序列化 - 过滤后摆脱空属性
【发布时间】:2014-12-02 22:11:51
【问题描述】:

我正在使用 Jackson 2.4.3 和 ObjectMapper,它们被配置为排除空属性 (JsonInclude.Include.NON_EMPTY),但我也在序列化过程中使用自定义 PropertyFilter,并且排除了一些属性(未写入)通过这个过滤器。 排除以前的空属性可以正常工作,但如果我的过滤器跳过了属性值,JSON 中仍然会出现。 最后,我有一个带有空属性的 JSON 文件,这是非常不可接受的:

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

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

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

【问题讨论】:

    标签: java json jackson fasterxml


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-08-24
      • 1970-01-01
      • 2017-12-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多