使用未知属性反序列化 JSON Jackson17 Mar 2025 | 4 分钟阅读 在本节中,我们将使用 Jackson 的 "2.x" 版本来介绍最重要的解组过程。目前,JSON 已被广泛用于表示数据。当我们处理具有未知属性的 JSON 数据并对其进行解组时,它将抛出 Unknown Property 异常。 让我们通过一个例子来了解如何使用附加/未知字段解组 JSON 数据。 使用附加或未知字段反序列化 JSON在解组 JSON 时,JSON 数据的形状和大小可以是任意的。当我们将它映射到具有一组字段的预定义 Java 对象时,它可能会导致异常。当它在 Java 对象中找不到匹配的字段时,可能会发生异常。为了处理此异常,我们需要忽略无法映射到现有 Java 字段的 JSON 属性。 JSON 数据 Java 对象 当我们将 JSON 反序列化为 Product 对象时,它将导致 com.fasterxml.jackson.databind.exc.UnrecognizedPropertyException. DeserializeJSONWithUnknownFields1.java 输出 ![]() 现在,为了处理未知字段,我们将配置完整的 ObjectMapper 类以忽略 JSON 中的未知属性。我们按以下方式配置 ObjectMapper 类 现在,我们只需配置 ObjectMapper 类并将其添加到上述代码中即可。 DeserializeJSONWithUnknownFields2.java 输出 ![]() 还有另一种处理未知属性的方法,即通过在类级别使用 @JsonIgnoreProperties(ignoreUnknown = true) 注释,如下所示 当我们在类级别使用注释时,无需配置 ObjectMapper 类来忽略 JSON 属性。 DeserializeJSONWithUnknownFields3.java 输出 ![]() |
我们请求您订阅我们的新闻通讯以获取最新更新。