Android JSon Fehler "Erwartet BEGIN_OBJECT aber war BEGIN_ARRAY in Zeile 1 Spalte 2"
Ich bin immer JSon-Daten von einem web-service, der sample-Daten nachstehend:
[
{
"SectionId": 1,
"SectionName": "Android"
}
]
Wenn ich versuche, Sie zu konvertieren, erzeugt einen Fehler, ich mache es so:
Data data = new Gson().fromJson(jsonDataFromWebService, Data.class);
Abschnitt meiner Klasse ist:
class Section
{
public int SectionId;
public String SectionName;
}
class Data {
public List<Section> sections;
}
Die LogCat sagt:
com.google.gson.JsonSyntaxException: java.lang.IllegalStateException:
Erwartet BEGIN_OBJECT aber war BEGIN_ARRAY in Zeile 1 Spalte 2
InformationsquelleAutor Yaqub Ahmad | 2012-02-25
Du musst angemeldet sein, um einen Kommentar abzugeben.
Den Fehler erklärt was falsch... u r Rückgabe eines array und nicht ein JSon-Objekt
versuchen Sie, wie folgt:
Dies ist eine schlechte Antwort. Verändert die Art, wie die API-Daten liefert, ist nicht immer eine option.
InformationsquelleAutor Aamir
Sie versuchen, eine nicht-Array - (Sammel -) Objekt aus einem JSONArray. Der Fehler ist ziemlich klar: GSON hatte erwartet, den Anfang eines Objekts, fand aber den Anfang des Arrays statt.
Werfen Sie einen Blick in die Dokumentation, Seite unten, um zu sehen, wie die Arbeit mit Arrays und Collection-Typen mit GSON
https://sites.google.com/site/gson/gson-user-guide#TOC-Collections-Examples
Aus der docs:
InformationsquelleAutor DallaRosa
Verwenden Abschnitt Klasse nur wie folgt:
InformationsquelleAutor Alex Che