Maison >Java >javaDidacticiel >Comment Jackson peut-il désérialiser JSON en classes génériques ?

Comment Jackson peut-il désérialiser JSON en classes génériques ?

Susan Sarandon
Susan Sarandonoriginal
2024-11-21 07:18:10292parcourir

How Can Jackson Deserialize JSON into Generic Classes?

Désérialiser JSON en classes génériques avec Jackson

Lorsque nous travaillons avec des données JSON, nous pouvons rencontrer des scénarios dans lesquels nous devons désérialiser des chaînes JSON en classes avec des paramètres génériques. La bibliothèque Jackson fournit un moyen de gérer efficacement de tels scénarios de désérialisation.

Pour désérialiser une chaîne JSON en une classe générique, nous devons d'abord définir la classe avec le paramètre de type générique :

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

Maintenant, pour désérialiser JSON en une instance de Data, nous pouvons utiliser la classe TypeReference fournie par Jackson. Le TypeReference nous permet de spécifier le type de la classe générique et de désérialiser le JSON en conséquence.

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

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

Dans cet exemple, nous créons un TypeReference pour Data et transmettez-le comme deuxième argument à readValue. Jackson désérialisera ensuite la chaîne JSON en une instance de Data.

Il est important de noter que nous devons fournir le type spécifique du paramètre générique lors de l'utilisation de TypeReference. Dans ce cas, nous avons spécifié String comme type pour T.

En utilisant TypeReference, nous pouvons désérialiser efficacement JSON en classes génériques avec Jackson, ce qui nous permet de gérer facilement des structures de données complexes.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn