Jackson 在编组时忽略属性

17 Mar 2025 | 5 分钟阅读

在本节中,我们将了解在将对象序列化为 JSON 时,如何忽略字段。 有多种方法可以忽略属性,当我们使用 Jackson 默认值不足以控制序列化到 JSON 的内容时,可以使用这些方法。

在类级别忽略字段

在类级别,我们可以通过使用 @JsonIgnoreProperties按名称指定字段 来轻松地忽略特定字段。 让我们举个例子来了解如何使用此注解在类级别忽略字段。

IgnoreFieldExample1.java

输出

Jackson Ignore Properties on Marshalling

在字段级别忽略字段

在字段级别,我们可以借助 @JsonIgnore 直接忽略该字段。 让我们举个例子来了解如何使用此注解在字段级别忽略字段。

IgnoreFieldExample2.java

输出

Jackson Ignore Properties on Marshalling

按类型忽略所有字段

通过这种方式,我们忽略了指定类型的所有字段。 如果我们可以控制类型,则可以直接注释该类。

然而,我们并不总是可以控制类本身,因此我们也可以使用 Jackson mixins。 我们使用以下步骤来使用 mixins

1. 为我们想要忽略的类型定义 mixin。

2. 使用 @JsonIgnoreType 注解注释 mixin。

3. 注册 mixin 以在编组期间忽略所有 Address 类型。

让我们举个例子来了解如何使用 mixin 来忽略 Address 类型的字段。

IgnoreFieldExample3.java

输出

Jackson Ignore Properties on Marshalling

通过使用过滤器忽略字段

通过使用过滤器,我们还可以在 Jackson 中忽略特定字段。 为了使用过滤器,我们需要以下列方式在 Java 对象上定义它

之后,我们定义一个简单的过滤器来忽略 intValue 字段

让我们举个例子来了解如何使用过滤器来忽略 intValue 字段。

IgnoreFieldExample4.java

输出

Jackson Ignore Properties on Marshalling