JSON 物件經常會發生變化,這在使用Jackson 等程式庫將其轉換為POJO 時可能會導致錯誤類。 Jackson 是一個流行的 JSON 處理庫,它提供了一種忽略 JSON 物件中新新增欄位的方法。
當 JSON 物件具有相應 POJO 類別中不存在的附加欄位時,傑克遜將無法轉換物件。即使新欄位是可選的並且可以安全地忽略,這種情況也可能發生。
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中文網其他相關文章!