Maison  >  Article  >  Java  >  Comment désérialiser JSON en classe générique avec Jackson ?

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

DDD
DDDoriginal
2024-11-20 11:41:19568parcourir

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
}

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>>() {}
  2. Passez l'objet TypeReference à la méthode readValue :

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

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!

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