"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>
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>
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>
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!