ホームページ >Java >&#&チュートリアル >Jackson を使用して JSON をポリモーフィック型に逆シリアル化する方法: 「直接マッピングできない」コンパイル エラーを解決する?

Jackson を使用して JSON をポリモーフィック型に逆シリアル化する方法: 「直接マッピングできない」コンパイル エラーを解決する?

Patricia Arquette
Patricia Arquetteオリジナル
2024-11-12 07:54:01828ブラウズ

How to Deserialize JSON into Polymorphic Types with Jackson: Resolving the

Jackson を使用して JSON を多態性型に逆シリアル化する: コンパイル エラーを解決する

Jackson の ObjectMapper を使用して多態性 JSON を逆シリアル化するときにコンパイル エラーを解決しようとすると、原因は次のとおりです。 readValue() メソッドの型の不一致

問題のある行は次のとおりです:

汎用の readValue() メソッドは 2 番目のパラメータとして TypeReference または Class を予期しますが、animalClass は Class のインスタンスです

アノテーションを使用した解決策:

このエラーを解決し、ポリモーフィックな逆シリアル化を可能にするために、Jackson の JSON アノテーションを利用できます。このアプローチでは、@JsonTypeInfo、@JsonSubTypes、および @JsonIgnoreProperties アノテーションが使用されます。

Animal クラスとそのサブクラスを次のように変更します。

Animal Class:

犬と猫サブクラス:

これらのアノテーションを使用すると、Jackson は多態性 JSON データを適切なサブクラスに適切に逆シリアル化できるようになりました。修正された readValue() 行は次のようになります:

以上がJackson を使用して JSON をポリモーフィック型に逆シリアル化する方法: 「直接マッピングできない」コンパイル エラーを解決する?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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