Maison > Java > javaDidacticiel > \'BEGIN_ARRAY attendu mais BEGIN_OBJECT\' : Pourquoi mon erreur d'analyse JSON se produit-elle ?

\'BEGIN_ARRAY attendu mais BEGIN_OBJECT\' : Pourquoi mon erreur d'analyse JSON se produit-elle ?

DDD
Libérer: 2024-10-27 04:40:29
original
993 Les gens l'ont consulté

"BEGIN_ARRAY attendu mais était BEGIN_OBJECT" : erreur d'analyse JSON

Lors de la manipulation de données JSON, vous rencontrez des erreurs telles que "BEGIN_ARRAY attendu mais était BEGIN_OBJECT" peut être frustrant. Pour comprendre la cause et trouver une solution, plongeons dans le scénario d'erreur spécifique :

L'erreur se produit lorsque vous tentez d'analyser une réponse JSON dans un tableau d'objets, mais la réponse réelle est un objet. L'extrait de code suivant illustre ce problème :

<code class="java">Gson gson = new GsonBuilder().setDateFormat("M/d/yy hh:mm a").create();
List<Post> postsList = Arrays.asList(gson.fromJson(reader, Post[].class));</code>
Copier après la connexion

Ici, postsList est censé contenir une collection d'objets Post, mais la réponse JSON reçue n'est qu'un seul objet Post :

<code class="json">{ 
  "dstOffset" : 3600, 
  "rawOffset" : 36000, 
  "status" : "OK", 
  "timeZoneId" : "Australia/Hobart", 
  "timeZoneName" : "Australian Eastern Daylight Time" 
}</code>
Copier après la connexion

Pour résoudre cette inadéquation, modifiez votre code pour tenir compte de la structure d'objet unique :

<code class="java">Post post = gson.fromJson(reader, Post.class);</code>
Copier après la connexion

En convertissant le JSON directement en un seul objet Post, vous alignez votre structure de données sur le format de réponse JSON réel, éliminant ainsi l'erreur.

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