Gson fromJson Generika deserialisieren
Während der Arbeit an einer Android-App hatte ich ein Problem, als ich eine ultimative generische Methode zum Senden von HTTP-Anfragen (mit loopj) und zum Deserialisieren (mit Gson) erstellen wollte.
ie Sie vielleicht wissen, während Sie @ verwendgson.fromJson
das kannst du nicht machen:
gson.fromJson(responseBody, new TypeToken<T>() {}.getType());
ode
gson.fromJson(responseBody, new TypeToken<ArrayList<T>>() {}.getType())
Anstelle des tatsächlichen Objekts (oder der Liste der tatsächlichen Objekte im 2. Fall), das Sie als @ übergeben habT
, Sie erhaltenLinkedTreeMap
Objekt (oder Liste vonLinkedTreeMap
Objekte).
Wenn Sie ein generisches Objekt (-s) immer noch deserialisieren möchten, lesen Sie die Antwort unten.
+ Bonus: ultimative generische Lösung für loopj + gson
Vielen Dank für Autoren und Kommentatoren dieser Beiträge:
http: //blog.xebia.com/2009/02/07/acessing-generic-types-at-runtime-in-java
Wie man einen konkreten Typ einer generischen Schnittstelle bekommt