Maison > Java > javaDidacticiel > le corps du texte

Comment désérialiser JSON en classe générique avec Jackson ?

DDD
Libérer: 2024-11-20 11:41:19
original
562 Les gens l'ont consulté

How to Deserialize JSON into a Generic Class with Jackson?

Désérialiser JSON à l'aide de types génériques avec Jackson

Question : Comment désérialiser des données JSON dans une classe générique à l'aide de Jackson ?

Considérons l'exemple suivant class :

class Data<T> {
    int found;
    Class<T> hits
}
Copier après la connexion

Une tentative de désérialisation JSON standard utilisant mapper.readValue(jsonString, Data.class) échouera. Pour désérialiser correctement les données, nous devons spécifier le paramètre de type .

Réponse : Jackson fournit une classe TypeReference pour gérer les types génériques lors de la désérialisation. Pour l'utiliser :

  1. Créez un objet TypeReference pour la classe générique. Dans cet exemple, la référence de type pour Data serait :

    new TypeReference<Data<String>>() {}
    Copier après la connexion
  2. Passez l'objet TypeReference à la méthode readValue :

    mapper.readValue(jsonString, new TypeReference<Data<String>>() {});
    Copier après la connexion

Cela désérialisera correctement les données JSON dans une instance de Data.

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!

source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal