Maison > Java > javaDidacticiel > le corps du texte

Pourquoi est-ce que j'obtiens une erreur « BEGIN_ARRAY attendu mais était BEGIN_OBJECT » lors de l'analyse de JSON en Java ?

Patricia Arquette
Libérer: 2024-10-26 17:14:02
original
471 Les gens l'ont consulté

Why Am I Getting a

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>
Copier après la connexion

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>
Copier après la connexion

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>
Copier après la connexion

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!

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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal