此錯誤發生在使用 Jackson 函式庫將 Firebase JSON 轉換為 Java 物件。這表示 Jackson 無法將 JSON 屬性對應到您的 Java 類別。
首先,確保您的 Java 類別屬性與 JSON 屬性名稱完全匹配,包括大小寫。此外,每個屬性都應該存在公共 getter。
如果您的 Java 類別不包含所有 JSON 屬性的映射,您可以使用 @JsonIgnoreProperties 註解來忽略特定屬性在轉換過程中。
對於您希望包含在 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中文網其他相關文章!