使用JSON 的Jackson:無法辨識的欄位解析
嘗試使用Jackson 將JSON 字串轉換為Java 物件時,出現「無法識別的欄位」可能會出現錯誤。當 JSON 中存在某個欄位但對應的 Java 類別中不存在時,就會發生這種情況。
在提供的範例中,JSON 輸入包含一個「包裝器」字段,該字段在 Student 和 Wrapper 類別中都不存在。為了解決這個問題,你可以使用 Jackson 的類別級註解:@JsonIgnoreProperties。
@JsonIgnoreProperties 註解
@JsonIgnoreProperties 註解允許你指定JSON 應被忽略。當您只需要 JSON 屬性的子集並希望避免建立大型映射時,這特別有用。
用法
忽略中的「wrapper」欄位您的JSON,您可以將@JsonIgnoreProperties 註解新增至您的Wrapper 類別:
import com.fasterxml.jackson.annotation.JsonIgnoreProperties; @JsonIgnoreProperties(ignoreUnknown = true) public class Wrapper { ... }透過使用ignoreUnknown = true,您指示Jackson 忽略它在JSON中遇到的任何未知屬性。
替代方法
或者,您可以明確為即使您不打算使用它們,也可以在 Wrapper 類別中新增「wrapper」欄位。這將使 Jackson 意識到該字段並防止“無法識別的字段”錯誤。 也可以使用 @JacksonXmlRootElement 註解來指定 JSON 的根元素,但這可能不是最佳解決方案所有場景。以上是使用 Jackson 和 JSON 時如何處理「無法辨識的欄位」錯誤?的詳細內容。更多資訊請關注PHP中文網其他相關文章!