Maison > Java > javaDidacticiel > Pourquoi GSON lance-t-il « BEGIN_OBJECT attendu mais était BEGIN_ARRAY » et comment puis-je y remédier ?

Pourquoi GSON lance-t-il « BEGIN_OBJECT attendu mais était BEGIN_ARRAY » et comment puis-je y remédier ?

DDD
Libérer: 2024-12-18 02:07:12
original
177 Les gens l'ont consulté

Why Does GSON Throw

Exception GSON : "BEGIN_OBJECT attendu mais était BEGIN_ARRAY"

Message d'erreur :

com.google.gson.JsonSyntaxException : java.lang.IllegalStateException : attendu BEGIN_OBJECT mais était BEGIN_ARRAY à la ligne 1 colonne 2

Aperçu du problème :

Votre réponse JSON est un tableau d'objets, mais vous essayez de l'analyser comme un seul objet.

Solution :

Pour résoudre ce problème, vous devez ajuster votre code pour gérer correctement la structure du tableau. Au lieu d'essayer d'analyser la chaîne JSON en tant que ChannelSearchEnum.class, vous devez l'analyser comme un tableau d'objets ChannelSearchEnum.

Code corrigé :

Type collectionType = new TypeToken<Collection<ChannelSearchEnum>>(){}.getType();
Collection<ChannelSearchEnum> enums = gson.fromJson(jstring, collectionType);
Copier après la connexion

Cette version révisée le code analysera correctement la chaîne JSON comme une collection d'objets ChannelSearchEnum, résolvant le "BEGIN_OBJECT attendu mais était BEGIN_ARRAY" exception.

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