首頁 >Java >java教程 >Jackson 如何在反序列化期間忽略 JSON 物件中的新欄位?

Jackson 如何在反序列化期間忽略 JSON 物件中的新欄位?

Mary-Kate Olsen
Mary-Kate Olsen原創
2024-11-28 08:29:11769瀏覽

How Can Jackson Ignore New Fields in JSON Objects During Deserialization?

使用Jackson 忽略JSON 物件中的新欄位

JSON 物件經常會發生變化,這在使用Jackson 等程式庫將其轉換為POJO 時可能會導致錯誤類。 Jackson 是一個流行的 JSON 處理庫,它提供了一種忽略 JSON 物件中新新增欄位的方法。

問題

當 JSON 物件具有相應 POJO 類別中不存在的附加欄位時,傑克遜將無法轉換物件。即使新欄位是可選的並且可以安全地忽略,這種情況也可能發生。

解決方案:@JsonIgnoreProperties

Jackson 提供了 @JsonIgnoreProperties 註釋,可以應用於類別以忽略未知屬性反序列化期間。當與ignoreUnknown = true一起使用時,此註釋將導致Jackson忽略POJO類別中不存在的所有屬性。

要使用@JsonIgnoreProperties,只需將以下註釋添加到POJO類的頂部:

@JsonIgnoreProperties(ignoreUnknown = true)
public class Foo {
    // Class fields
}

導入聲明

根據您使用的Jackson 版本,您需要為@JsonIgnoreProperties 導入正確的類別:

對於Jackson 2.x:

import com.fasterxml.jackson.annotation.JsonIgnoreProperties;

對於Jackson 1.x:

import org.codehaus.jackson.annotate.JsonIgnoreProperties;

透過使用@JsonIgnoreProperties,您可以防止傑克森當JSON 物件包含傑克遜新欄位時會中斷。此註解提供了一種簡單有效的方法來處理不斷變化的 JSON 模式,並確保您的程式碼即使在 JSON 物件發生變化時也保持穩定。

以上是Jackson 如何在反序列化期間忽略 JSON 物件中的新欄位?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn