Heim > Java > javaLernprogramm > Warum wirft GSON beim Parsen von JSON-Arrays „Erwartetes BEGIN_OBJECT, war aber BEGIN_ARRAY' aus?

Warum wirft GSON beim Parsen von JSON-Arrays „Erwartetes BEGIN_OBJECT, war aber BEGIN_ARRAY' aus?

Linda Hamilton
Freigeben: 2025-01-01 01:25:10
Original
757 Leute haben es durchsucht

Why Does GSON Throw

BEGIN_OBJECT erwartet, war aber BEGIN_ARRAY mit GSON

Beim Versuch, eine JSON-Zeichenfolge, die ein Array von Objekten enthält, mithilfe von GSON in eine Liste von Objekten zu analysieren , tritt das Problem „BEGIN_OBJECT erwartet, aber BEGIN_ARRAY“ auf. Dies liegt daran, dass GSON damit rechnet, ein einzelnes Objekt zu analysieren, stattdessen aber auf ein Array von Objekten trifft.

Um dieses Problem zu beheben, besteht die richtige Methode darin, anzugeben, dass die erwartete Datenstruktur ein Array von Objekten ist. Dies kann erreicht werden, indem der Code wie folgt geändert wird:

ChannelSearchEnum[] enums = gson.fromJson(yourJson, ChannelSearchEnum[].class);
Nach dem Login kopieren

Alternativ können Sie für mehr Flexibilität den folgenden Code verwenden:

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

Das obige ist der detaillierte Inhalt vonWarum wirft GSON beim Parsen von JSON-Arrays „Erwartetes BEGIN_OBJECT, war aber BEGIN_ARRAY' aus?. 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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage