Jackson を使用して JSON を汎用クラスに逆シリアル化する方法は?

DDD
リリース: 2024-11-20 11:41:19
オリジナル
548 人が閲覧しました

How to Deserialize JSON into a Generic Class with Jackson?

Jackson を使用してジェネリック型を使用して JSON を逆シリアル化する

質問: Jackson を使用して JSON データをジェネリック クラスに逆シリアル化する方法?

次のクラス例を考えてみましょう:

class Data<T> {
    int found;
    Class<T> hits
}
ログイン後にコピー

mapper.readValue(jsonString, Data.class) を使用した標準的な JSON 逆シリアル化の試行は失敗します。データを正しく逆シリアル化するには、型パラメーター を指定する必要があります。

答え: Jackson は、逆シリアル化中にジェネリック型を処理する TypeReference クラスを提供します。使用するには:

  1. ジェネリック クラスの TypeReference オブジェクトを作成します。この例では、Data の型参照は次のようになります:

    new TypeReference<Data<String>>() {}
    ログイン後にコピー
  2. TypeReference オブジェクトを readValue メソッドに渡します:

    mapper.readValue(jsonString, new TypeReference<Data<String>>() {});
    ログイン後にコピー

これにより、JSON データが正しく逆シリアル化されます。 Data のインスタンス。

以上がJackson を使用して JSON を汎用クラスに逆シリアル化する方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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