Ich habe eine JSON-Datei wie diese:
[
{
"number": "3",
"title": "hello_world",
}, {
"number": "2",
"title": "hello_world",
}
]
Früher, wenn Dateien ein Root-Element hatten, würde ich verwenden:
Wrapper w = gson.fromJson(JSONSTRING, Wrapper.class);
Code, aber ich kann mir nicht vorstellen, wie man die Wrapper
Klasse codiert, da das Stammelement ein Array ist.
Ich habe versucht:
Wrapper[] wrapper = gson.fromJson(jsonLine, Wrapper[].class);
mit:
public class Wrapper{
String number;
String title;
}
Aber ich hatte kein Glück. Wie kann ich das sonst mit dieser Methode lesen?
PS Ich habe dies zum Arbeiten mit:
JsonArray entries = (JsonArray) new JsonParser().parse(jsonLine);
String title = ((JsonObject)entries.get(0)).get("title");
Aber ich würde es vorziehen zu wissen, wie man es (wenn möglich) mit beiden Methoden macht.
Wrapper[] data = gson.fromJson(jElement, Wrapper[].class);
funktioniert es gut für mich.Antworten:
Das Problem wird durch ein Komma am Ende (in Ihrem Fall jeweils ) des im Array platzierten JSON-Objekts verursacht:
Wenn Sie sie entfernen, werden Ihre Daten
und
sollte gut funktionieren.
quelle
jackson
Bibliothek und dieses Kommentars ist das Erstellen undArrays.asList(..)
Umschließen eines Arrays schneller als das Erstellen einer Liste mit TypeRefence. Ich habe es nicht mit dergson
Bibliothek getestet, aber es kann sich lohnen, es zu vergleichen.Scheint gut zu funktionieren.
,
In Ihrer Zeichenfolge befindet sich jedoch ein zusätzliches Komma.quelle
Beispielaufruf:
quelle
GsonUtils
ist die Klasse, in der er seine eigenetoList()
Methode einsetzt.quelle