ホームページ >Java >&#&チュートリアル >Jackson を使用して JSON を汎用クラスに逆シリアル化する方法は?

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

DDD
DDDオリジナル
2024-11-20 11:41:19618ブラウズ

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

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