Maison >Java >javaDidacticiel >Pourquoi GSON lance-t-il « BEGIN_OBJECT attendu mais était BEGIN_ARRAY » lors de l'analyse des tableaux JSON ?
BEGIN_OBJECT attendu mais était BEGIN_ARRAY avec GSON
Lors de la tentative d'analyse d'une chaîne JSON contenant un tableau d'objets dans une liste d'objets à l'aide de GSON , le problème de « BEGIN_OBJECT attendu mais était BEGIN_ARRAY » se pose. Cela se produit parce que GSON anticipe l'analyse d'un seul objet, mais rencontre à la place un tableau d'objets.
Pour résoudre ce problème, la méthode correcte consiste à spécifier que la structure de données attendue est un tableau d'objets. Ceci peut être réalisé en modifiant le code comme suit :
ChannelSearchEnum[] enums = gson.fromJson(yourJson, ChannelSearchEnum[].class);
Alternativement, pour plus de flexibilité, vous pouvez utiliser le code suivant :
Type collectionType = new TypeToken<Collection<ChannelSearchEnum>>(){}.getType(); Collection<ChannelSearchEnum> enums = gson.fromJson(yourJson, collectionType);
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!