ホームページ > Java > &#&チュートリアル > Jackson を使用して JSON をポリモーフィック型に逆シリアル化しようとするとコンパイル エラーが発生するのはなぜですか?

Jackson を使用して JSON をポリモーフィック型に逆シリアル化しようとするとコンパイル エラーが発生するのはなぜですか?

Mary-Kate Olsen
リリース: 2024-11-19 08:31:02
オリジナル
734 人が閲覧しました

Why am I getting a compile error when trying to deserialize JSON with Jackson into polymorphic types?

Jackson を使用した JSON の多態性型への逆シリアル化 - コンパイル エラーの明確化

提供されたコード スニペットで発生したエラーは、 ObjectMapper の readValue メソッド。具体的には、引数の型が予期されたメソッド シグネチャと一致しません。

予期されたメソッド シグネチャ:

public <T> T readValue(JsonParser jp, Class<T> valueType)
                          throws IOException, JsonProcessingException
ログイン後にコピー

間違ったメソッド呼び出し:

return mapper.readValue(root, animalClass);
ログイン後にコピー

間違った呼び出しでは、最初の引数は ではなく ObjectNode です。 JsonParser。この不正な引数の型は、コードが mapper.readTree(jp) を使用して JsonParser から ObjectNode を取得しようとするために発生します。ただし、この変換の正しいメソッドは、mapper.readtree(jp) です (「Tree」の「t」が小文字であることに注意してください)。

解決策:

を修正するにはコンパイル エラーが発生した場合は、行を次のように変更します。

return mapper.readValue(mapper.readTree(jp), animalClass);
ログイン後にコピー

この修正により、readValue の最初の引数が確実にJsonParser であり、2 番目の引数はターゲット クラス タイプ、animalClass です。

以上がJackson を使用して JSON をポリモーフィック型に逆シリアル化しようとするとコンパイル エラーが発生するのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート