Erreur d'analyse JSON : "BEGIN_ARRAY attendu mais était BEGIN_OBJECT"
En Java, vous rencontrez l'erreur "BEGIN_ARRAY attendu mais était BEGIN_OBJECT" " en raison d'une inadéquation entre la structure JSON attendue et réelle lors de l'analyse à l'aide de Gson.
Structure JSON
La réponse JSON fournie par le serveur n'est pas un tableau mais un objet unique :
<code class="json">{ "dstOffset" : 3600, "rawOffset" : 36000, "status" : "OK", "timeZoneId" : "Australia/Hobart", "timeZoneName" : "Australian Eastern Daylight Time" }</code>
Code d'analyse Gson
Cependant, dans votre code, vous supposez à tort que la réponse JSON est un tableau d'objets Post :
<code class="java">List<Post> postsList = Arrays.asList(gson.fromJson(reader, Post[].class));</code>
Gson attend un tableau, il renvoie donc l'erreur lorsqu'il rencontre le caractère BEGIN_OBJECT dans la réponse JSON.
Solution
À résolvez l'erreur, modifiez votre code pour attendre un seul objet Post :
<code class="java">Post post = gson.fromJson(reader, Post.class);</code>
Ce changement s'alignera sur la structure JSON réelle et éliminera l'erreur d'analyse.
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!