ホームページ >Java >&#&チュートリアル >Jackson を使用して Firebase JSON を Java オブジェクトにマッピングすると「タイプへのバウンスに失敗しました」エラーが発生するのはなぜですか?

Jackson を使用して Firebase JSON を Java オブジェクトにマッピングすると「タイプへのバウンスに失敗しました」エラーが発生するのはなぜですか?

Susan Sarandon
Susan Sarandonオリジナル
2024-11-26 12:31:10170ブラウズ

Why Am I Getting a

Firebase JSON を Java オブジェクトに変換するときに「タイプへのバウンスに失敗しました」エラーが発生するのはなぜですか?

はじめに

このエラーは次のときに発生します。 Jackson ライブラリを使用した Firebase JSON の Java オブジェクトへの変換。これは、Jackson が JSON プロパティを Java クラスにマップできないことを示しています。

解決策

Java クラスのプロパティが JSON プロパティと一致することを確認します

まず、Java クラスのプロパティが一致していることを確認します。大文字と小文字の区別も含めて、JSON プロパティ名と完全に一致します。さらに、各プロパティにパブリック ゲッターが存在する必要があります。

@JsonIgnoreProperties アノテーションを使用する

Java クラスにすべての JSON プロパティのマッピングが含まれていない場合は、@JsonIgnoreProperties アノテーションを使用して特定のプロパティを無視できます。変換中。

@JsonIgnore を利用する注釈

Java クラスに含めたいが、JSON にシリアル化して戻さないプロパティについては、 @JsonIgnore 注釈を使用して、無視する必要があることを示すことができます。

次の Firebase JSON 構造を考えてみましょう:

{
  "users": {
    "-Jx5vuRqItEF-7kAgVWy": {
      "handle": "puf",
      "name": "Frank van Puffelen",
      "soId": 209103
    }
  }
}

この JSON を Java オブジェクトに変換するには、次のクラスを定義します:

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

  public String getHandle() { return handle; }
  public String getName() { return name; }
}

soId プロパティを無視する @JsonIgnoreProperties アノテーションを追加すると、コードは次のようになります:

@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 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。