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 :
Créez un objet TypeReference pour la classe générique. Dans cet exemple, la référence de type pour Data
new TypeReference<Data<String>>() {}
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!