Heim >Java >javaLernprogramm >Wie kann ich ein Listenobjekt mit Gson deserialisieren?
Deserialisieren einer Liste
Bei dem Versuch, Listenobjekte mit Google Gson zu übertragen, sind Schwierigkeiten bei der Deserialisierung generischer Typen aufgetreten. Beim Versuch einer von der Antwort von BalusC inspirierten Lösung erschien eine Fehlermeldung, die auf die Notwendigkeit von Methodenimplementierungen hinweist.
Es gibt jedoch einen effektiveren Ansatz, indem die TypeToken-Klasse wie folgt verwendet wird:
Type listType = new TypeToken<ArrayList<YourClass>>(){}.getType(); List<YourClass> yourClassList = new Gson().fromJson(jsonArray, listType);
Die TypeToken-Klasse erfasst einen Typ zur Kompilierungszeit in einem java.lang.reflect.Type-Objekt, im Gegensatz zu einem Class-Objekt, das nur einen Rohtyp darstellt. Dies ermöglicht die Darstellung jedes beliebigen Typs in der Java-Sprache, einschließlich generischer Typen.
Die TypeToken-Klasse wird anonym erstellt, da ihre direkte Konstruktion nicht zulässig ist. Dies ist notwendig, um die Typinformationen innerhalb der anonymen Unterklasse zu erfassen.
Es ist wichtig zu beachten, dass TypeToken nur Typen erfassen kann, die zur Kompilierungszeit vollständig bekannt sind.
Das obige ist der detaillierte Inhalt vonWie kann ich ein Listenobjekt mit Gson deserialisieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!