首頁 > Java > java教程 > 使用 Jackson 將 Firebase JSON 對應到 Java 物件時,為什麼會出現「無法跳至型別」錯誤?

使用 Jackson 將 Firebase JSON 對應到 Java 物件時,為什麼會出現「無法跳至型別」錯誤?

Susan Sarandon
發布: 2024-11-26 12:31:10
原創
199 人瀏覽過

Why Am I Getting a

為什麼在將 Firebase JSON 轉換為 Java 物件時出現「無法反彈到型別」錯誤?

簡介

此錯誤發生在使用 Jackson 函式庫將 Firebase JSON 轉換為 Java 物件。這表示 Jackson 無法將 JSON 屬性對應到您的 Java 類別。

解決方案

確保 Java 類別屬性匹配 JSON 屬性

首先,確保您的 Java 類別屬性與 JSON 屬性名稱完全匹配,包括大小寫。此外,每個屬性都應該存在公共 getter。

利用 @JsonIgnoreProperties 註解

如果您的 Java 類別不包含所有 JSON 屬性的映射,您可以使用 @JsonIgnoreProperties 註解來忽略特定屬性在轉換過程中。

利用@JsonIgnore註解

對於您希望包含在 Java 類別中但不序列化回 JSON 的屬性,您可以使用 @JsonIgnore 註解來指示應忽略它們。

範例

考慮以下Firebase JSON 結構:

{
  "users": {
    "-Jx5vuRqItEF-7kAgVWy": {
      "handle": "puf",
      "name": "Frank van Puffelen",
      "soId": 209103
    }
  }
}
登入後複製

要將此JSON 轉換為Java 對象,請定義以下內容class:

private static class User {
  private String handle;
  private String name;

  public String getHandle() { return handle; }
  public String getName() { return name; }
}
登入後複製

當加上@JsonIgnoreProperties 註解來忽略soId屬性時,程式碼變成:

@JsonIgnoreProperties({"soId"})
private static class User {
  private String handle;
  private String name;

  public String getHandle() { return handle; }
  public String getName() { return name; }
}
登入後複製

或者,要完全忽略任何不匹配的屬性,請使用以下註解:

@JsonIgnoreProperties(ignoreUnknown = true)
private static class User {
  ...
}
登入後複製

這允許Jackson 忽略JSON 中沒有相應Java類別的屬性屬性。

以上是使用 Jackson 將 Firebase JSON 對應到 Java 物件時,為什麼會出現「無法跳至型別」錯誤?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板