Dekodierung verschachtelter Datenstrukturen mit GSON
Die bereitgestellten JSON-Daten stellen ein Array von Objekten dar, während der Dekodierungscode ein einzelnes Objekt von vorwegnimmt die ChannelSearchEnum-Klasse. Diese Nichtübereinstimmung führt zur Ausnahme „Erwartetes BEGIN_OBJECT, war aber BEGIN_ARRAY“.
Um dies zu beheben, muss der Dekodierungsansatz geändert werden, um ein Array von Objekten zu verarbeiten. Eine geeignete Methode ist die Verwendung der TypeToken-Klasse in Kombination mit der fromJson-Methode.
Type collectionType = new TypeToken<Collection<ChannelSearchEnum>>(){}.getType(); Collection<ChannelSearchEnum> enums = gson.fromJson(json, collectionType);
Dieser Code erstellt ein Typtoken für eine Sammlung von ChannelSearchEnum-Objekten und verwendet es dann, um den gewünschten Typ während der Deserialisierung anzugeben. Infolgedessen analysiert GSON das JSON-Array korrekt und füllt eine Sammlung mit einzelnen ChannelSearchEnum-Instanzen.
Das obige ist der detaillierte Inhalt vonWie dekodiere ich ein JSON-Array mithilfe von GSON in eine Sammlung von Objekten?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!