Maison > Java > javaDidacticiel > Comment puis-je désérialiser un objet de liste avec Gson ?

Comment puis-je désérialiser un objet de liste avec Gson ?

Susan Sarandon
Libérer: 2024-12-10 19:03:12
original
877 Les gens l'ont consulté

How Can I Deserialize a List Object with Gson?

Désérialiser une liste Objet avec Gson

Dans le but de transférer des objets de liste à l'aide de Google Gson, les difficultés de désérialisation des types génériques sont apparues. Lors de la tentative d'une solution inspirée de la réponse de BalusC, un message d'erreur indiquant la nécessité d'implémentations de méthodes est apparu.

Cependant, une approche plus efficace existe, utilisant la classe TypeToken comme suit :

Type listType = new TypeToken<ArrayList<YourClass>>(){}.getType();
List<YourClass> yourClassList = new Gson().fromJson(jsonArray, listType);
Copier après la connexion

La classe TypeToken capture un type au moment de la compilation dans un objet java.lang.reflect.Type, contrairement à un objet Class qui représente uniquement un type brut. Cela permet la représentation de n'importe quel type dans le langage Java, y compris les types génériques.

La classe TypeToken est construite de manière anonyme, car sa construction directe n'est pas autorisée. Ceci est nécessaire pour capturer les informations de type au sein de la sous-classe anonyme.

Il est important de noter que TypeToken ne peut capturer que les types entièrement connus au moment de la compilation.

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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal