【问题标题】:Jackson @JsonIgnoreProperties targeting nested attributesJackson @JsonIgnoreProperties 针对嵌套属性
【发布时间】:2018-07-21 02:02:57
【问题描述】:

有没有办法让@JsonIgnoreProperties 以嵌套属性为目标?

类似于下面的代码:

public class ParentObject() {
    @JsonIgnoreProperties({ "subAttributeA.subAttributeB.subAttributeC" })
    private ChildObject attribute;
}

在这个例子中,我希望 subAttributeC 不包含在 ParentObject 的序列化中 - 但同样的 subAttributeC 仍然需要其他场景可序列化。

如果无法使用注释,如何实现?

【问题讨论】:

    标签: java json jackson


    【解决方案1】:

    一种可能的方法是将@JsonSerialize 与自定义序列化程序一起使用。这在低抽象级别上运行,您基本上必须指定如何序列化每个属性。有一个示例 here 使用平面对象,但鉴于 JsonGenerator 具有 writeObject 等方法,我确信这也可以用于层次结构。

    【讨论】:

      【解决方案2】:

      如果jackson配置为不序列化空属性:

      objectMapper.setSerializationInclusion(Include.NON_NULL);
      

      然后一个更简单的解决方法是在返回之前将不需要的属性设置为 null。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-12-21
        • 2017-09-22
        • 1970-01-01
        • 1970-01-01
        • 2020-01-18
        相关资源
        最近更新 更多