Heim > Java > javaLernprogramm > Warum gibt GSON „Expected BEGIN_OBJECT but was BEGIN_ARRAY' aus und wie kann ich das beheben?

Warum gibt GSON „Expected BEGIN_OBJECT but was BEGIN_ARRAY' aus und wie kann ich das beheben?

DDD
Freigeben: 2024-12-18 02:07:12
Original
189 Leute haben es durchsucht

Why Does GSON Throw

GSON-Ausnahme: „Erwartetes BEGIN_OBJECT, war aber BEGIN_ARRAY“

Fehlermeldung:

com.google.gson.JsonSyntaxException : java.lang.IllegalStateException: BEGIN_OBJECT erwartet war aber BEGIN_ARRAY in Zeile 1, Spalte 2

Problemübersicht:

Ihre JSON-Antwort ist ein Array von Objekten, aber Sie versuchen, es als einzelnes Objekt zu analysieren .

Lösung:

Um dieses Problem zu beheben, müssen Sie Sie müssen Ihren Code anpassen, um die Array-Struktur richtig zu verarbeiten. Anstatt zu versuchen, die JSON-Zeichenfolge als ChannelSearchEnum.class zu analysieren, sollten Sie sie als Array von ChannelSearchEnum-Objekten analysieren.

Korrigierter Code:

Type collectionType = new TypeToken<Collection<ChannelSearchEnum>>(){}.getType();
Collection<ChannelSearchEnum> enums = gson.fromJson(jstring, collectionType);
Nach dem Login kopieren

Dies wurde überarbeitet Der Code analysiert die JSON-Zeichenfolge korrekt als Sammlung von ChannelSearchEnum-Objekten und löst das „Expected BEGIN_OBJECT but was BEGIN_ARRAY"-Ausnahme.

Das obige ist der detaillierte Inhalt vonWarum gibt GSON „Expected BEGIN_OBJECT but was BEGIN_ARRAY' aus und wie kann ich das beheben?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage