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

Comment désérialiser JSON en types génériques avec Jackson ?

DDD
DDDoriginal
2024-11-23 13:23:11466parcourir

How to Deserialize JSON into Generic Types with Jackson?

Désérialisation générique avec Jackson

Lors de la désérialisation de données JSON dans une classe générique comme Data, il est souvent nécessaire de spécifier le type de le paramètre générique T. L'approche standard utilisant mapper.readValue(jsonString, Data.class) ne fournit pas cela informations.

Pour résoudre ce problème, Jackson s'appuie sur l'objet TypeReference. En créant un TypeReference spécifiquement pour le type générique souhaité, vous pouvez guider le processus de désérialisation.

Pour désérialiser une chaîne JSON en une instance de Data, instanciez un TypeReference à l'aide de la syntaxe de classe interne anonyme :

TypeReference<Data<String>> typeRef = new TypeReference<Data<String>>() {};

Ensuite, transmettez le TypeReference comme deuxième argument à readValue méthode :

Data<String> data = mapper.readValue(jsonString, typeRef);

Cette approche garantit que Jackson connaît le type spécifique de T dans lequel désérialiser, ce qui entraîne un comportement de désérialisation correct.

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