ホームページ  >  記事  >  Java  >  Jackson はどのようにして JSON を汎用クラスに逆シリアル化できるのでしょうか?

Jackson はどのようにして JSON を汎用クラスに逆シリアル化できるのでしょうか?

Susan Sarandon
Susan Sarandonオリジナル
2024-11-21 07:18:10252ブラウズ

How Can Jackson Deserialize JSON into Generic Classes?

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

JSON データを扱うとき、JSON 文字列をクラスに逆シリアル化する必要があるシナリオに遭遇することがあります。汎用パラメータを使用します。 Jackson ライブラリは、このような逆シリアル化シナリオを効果的に処理する方法を提供します。

JSON 文字列をジェネリック クラスに逆シリアル化するには、まずジェネリック型パラメーターを使用してクラスを定義する必要があります。

class Data<T> {
    int found;
    Class<T> hits
}

ここで、JSON を Data のインスタンスに逆シリアル化するには、Jackson が提供する TypeReference クラスを使用できます。 TypeReference を使用すると、ジェネリック クラスの型を指定し、それに応じて JSON を逆シリアル化できます。

ObjectMapper mapper = new ObjectMapper();
String jsonString = "...";

TypeReference<Data<String>> typeRef = new TypeReference<>() {};
Data<String> data = mapper.readValue(jsonString, typeRef);

この例では、Data の TypeReference を作成します。それを 2 番目の引数として readValue に渡します。次に、Jackson は JSON 文字列を Data のインスタンスに逆シリアル化します。

TypeReference を使用する場合は、ジェネリック パラメーターの特定の型を指定する必要があることに注意することが重要です。この場合、T の型として String を指定しました。

TypeReference を利用することで、Jackson を使用して JSON をジェネリック クラスに効果的に逆シリアル化でき、複雑なデータ構造を簡単に処理できるようになります。

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

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