Wenn Sie Gson zum Übertragen eines Listenobjekts verwenden, kann es beim Umgang mit generischen Typen zu Herausforderungen kommen. Dieser Artikel bietet eine umfassende Anleitung zum Deserialisieren generischer Listen mit Gson.
Problem:
Der Versuch, eine Liste mit new List
Lösung:
Um eine generische Liste korrekt zu deserialisieren, verwenden Sie die TypeToken-Klasse wie folgt:
Type listType = new TypeToken<List<MyClass>>() {}.getType(); MyClass mc = new Gson().fromJson(result, listType);
Dieser Ansatz macht die getClass überflüssig ()-Aufruf, der eine prägnantere und effektivere Bereitstellung ermöglicht Lösung.
Erklärung:
TypeToken erfasst den generischen Typ zur Kompilierungszeit. Die während der Instanziierung erstellte anonyme Unterklasse stellt sicher, dass die korrekten Typinformationen beibehalten werden, wenn sie an die fromJson-Methode von Gson übergeben werden. Dadurch wird die ordnungsgemäße Deserialisierung Ihrer generischen Liste sichergestellt.
Zusätzliche Hinweise:
Das obige ist der detaillierte Inhalt vonWie deserialisiere ich eine generische Liste mit Gson?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!