Heim  >  Artikel  >  Java  >  Warum erhalte ich beim Parsen von JSON in Java den Fehler „BEGIN_ARRAY erwartet, aber BEGIN_OBJECT“?

Warum erhalte ich beim Parsen von JSON in Java den Fehler „BEGIN_ARRAY erwartet, aber BEGIN_OBJECT“?

Patricia Arquette
Patricia ArquetteOriginal
2024-10-26 17:14:02388Durchsuche

Why Am I Getting a

JSON-Parsing-Fehler: „BEGIN_ARRAY erwartet, aber BEGIN_OBJECT“

In Java tritt der Fehler „BEGIN_ARRAY erwartet, aber BEGIN_OBJECT“ auf " aufgrund einer Diskrepanz zwischen der erwarteten und der tatsächlichen JSON-Struktur beim Parsen mit Gson.

JSON-Struktur

Die bereitgestellte JSON-Antwort vom Server ist kein Array, sondern ein einzelnes Objekt:

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

Gson-Parsing-Code

In Ihrem Code gehen Sie jedoch fälschlicherweise davon aus, dass die JSON-Antwort ein Array von Post-Objekten ist:

<code class="java">List<Post> postsList = Arrays.asList(gson.fromJson(reader, Post[].class));</code>

Gson erwartet ein Array und löst daher den Fehler aus, wenn es in der JSON-Antwort auf das Zeichen BEGIN_OBJECT stößt.

Lösung

An Beheben Sie den Fehler, ändern Sie Ihren Code so, dass er ein einzelnes Post-Objekt erwartet:

<code class="java">Post post = gson.fromJson(reader, Post.class);</code>

Diese Änderung passt sich der tatsächlichen JSON-Struktur an und beseitigt den Parsing-Fehler.

Das obige ist der detaillierte Inhalt vonWarum erhalte ich beim Parsen von JSON in Java den Fehler „BEGIN_ARRAY erwartet, aber BEGIN_OBJECT“?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn