首頁  >  文章  >  Java  >  如何處理 Jackson JSON 反序列化中無法辨識的欄位?

如何處理 Jackson JSON 反序列化中無法辨識的欄位?

DDD
DDD原創
2024-11-16 12:34:02283瀏覽

How to Handle Unrecognized Fields in Jackson JSON Deserialization?

Jackson 和JSON:無法識別的字段的錯誤處理

當Jackson 遇到它嘗試映射的無法識別的屬性“包裝器”時,就會出現此問題到包裝類別。由於目標類別中未定義該字段,因此會失敗並顯示“UnrecognizedPropertyException”。

解決方案

要解決此問題,請利用 Jackson 的 JsonIgnoreProperties 註解。可以在類別層級應用此註解來指定應忽略任何無法識別的屬性。預設情況下,它會忽略 POJO 中未明確定義的任何屬性。

此註解的範例用法:

import com.fasterxml.jackson.annotation.JsonIgnoreProperties;

@JsonIgnoreProperties
class Wrapper { ... }

此註解可確保 JSON 中不對應的任何屬性反序列化期間將跳過 Wrapper 類別中定義的欄位。

進階選項

對於您想要忽略所有未聲明屬性的情況,即使是那些具有getter 和setter 的屬性在目標類別中定義的方法中,可以使用ignoreUnknown標誌:

@JsonIgnoreProperties(ignoreUnknown = true)
class Wrapper { ... }

透過指定ignoreUnknown = true,Jackson將忽略JSON中任何在Wrapper類別中沒有對應欄位的屬性,無論getter 或setter 方法的存在。

以上是如何處理 Jackson JSON 反序列化中無法辨識的欄位?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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