Maison >Java >javaDidacticiel >Pourquoi GSON lance-t-il « BEGIN_OBJECT attendu mais était BEGIN_ARRAY » lors de l'analyse des tableaux JSON ?

Pourquoi GSON lance-t-il « BEGIN_OBJECT attendu mais était BEGIN_ARRAY » lors de l'analyse des tableaux JSON ?

Linda Hamilton
Linda Hamiltonoriginal
2025-01-01 01:25:10766parcourir

Why Does GSON Throw

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!

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