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!