JSON-Syntaxfehler: Erwartetes BEGIN_ARRAY, war aber BEGIN_OBJECT
Der JSON-Parser stößt beim Parsen von JSON-Daten auf einen Fehler, der auf eine Nichtübereinstimmung zwischen den hinweist erwartete und tatsächliche Struktur.
Problem:
Die Fehlermeldung „Erwartetes BEGIN_ARRAY, war aber BEGIN_OBJECT in Zeile 1, Spalte 2“ impliziert, dass der Parser eine Array-Struktur erwartet hat ( BEGIN_ARRAY) in den JSON-Daten, aber stattdessen wurde eine Objektstruktur (BEGIN_OBJECT) gefunden. Diese Nichtübereinstimmung kann dazu führen, dass der Parser fehlschlägt und eine Ausnahme auslöst.
Server-URL und Anforderung:
Das bereitgestellte Codefragment führt eine HTTP-POST-Anfrage an eine URL aus und ruft diese ab seine Antwort. Die URL ist zum Abrufen von JSON-Daten von einem Remote-Server konfiguriert.
Post-Klasse:
Die Post-Klasse definiert die Struktur jedes Objekts innerhalb des erwarteten Datenarrays. Wie aus der Fehlermeldung hervorgeht, gibt der Server jedoch kein Array von Objekten zurück, sondern ein einzelnes Objekt.
Lösung:
Der Code erwartet ein Array von Veröffentlicht Objekte, erhält aber ein einzelnes Objekt. Um dieses Problem zu beheben, ändern Sie den Code, um die Antwort als einzelnes Post-Objekt statt als Array zu interpretieren:
<code class="java">Post post = gson.fromJson(reader, Post.class);</code>
Durch Ersetzen
<code class="java">List<Post> postsList = Arrays.asList(gson.fromJson(reader, Post[].class));</code>
durch die obige Zeile wird der Code korrekt interpretiert die JSON-Antwort als ein einzelnes Post-Objekt und behebt den Fehler „Erwartetes BEGIN_ARRAY, war aber BEGIN_OBJECT“.
Das obige ist der detaillierte Inhalt vonWarum erhalte ich beim Parsen von JSON-Daten den Fehler „JSON-Syntaxfehler: Erwartetes BEGIN_ARRAY, aber war BEGIN_OBJECT'?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!