GSON renvoie l'erreur "BEGIN_OBJECT attendu mais était BEGIN_ARRAY"
En tentant d'analyser une chaîne JSON contenant un tableau d'objets dans une liste de objets, GSON lève une exception "BEGIN_OBJECT attendu mais était BEGIN_ARRAY". Le problème réside dans l'inadéquation des attentes entre la structure JSON et la tentative du code de l'interpréter.
Pour comprendre l'erreur, considérez la chaîne JSON :
[ { // Object properties }, { // Another object } ]
Ce JSON représente un tableau de objets. Cependant, le code tente de le désérialiser en tant qu'objet unique de type ChannelSearchEnum. Cette inadéquation des attentes conduit à l'erreur.
Pour résoudre ce problème, corrigez le code pour qu'il s'attende à un tableau d'objets :
Gson gson = new Gson(); ChannelSearchEnum[] enums = gson.fromJson(yourJson, ChannelSearchEnum[].class);
Vous pouvez également utiliser la classe TypeToken pour créer un type qui représente la collection d'objets :
Type collectionType = new TypeToken<Collection<ChannelSearchEnum>>(){}.getType(); Collection<ChannelSearchEnum> enums = gson.fromJson(yourJson, collectionType);
En manipulant correctement la structure JSON, vous pouvez éviter le "BEGIN_OBJECT attendu mais était une erreur BEGIN_ARRAY" et j'ai réussi à analyser et utiliser les données.
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!