Ich möchte ein Java-Objekt zu JSON mit Googles GSON-Bibliothek serialisieren. Es funktioniert gut, außer wenn eine ArrayList auftritt. GSON kann den generischen Typ der ArrayList nicht verarbeiten. @ Yavor Georgiev hat eine Lösung mit der Methode registerSerializer (...) beschrieben, aber diese Methode ist in den neuen Releases nicht vorhanden.Serialisierung von ArrayList (generische Typen) mit GSON
gson.registerSerializer(ArrayList.class, new CollectionSerializer<Object>());
http://hashtagfail.com/post/44606137082/mobile-services-android-serialization-gson
die Arraylist In meinem Fall ist drei Schichten unter dem Objekt in einer Klasse verschachtelt, die toJSON(...)
übergeben wird.
Weiß jemand, wie man dieses Problem löst?
Die Struktur ist wie folgt:
public class Data() {
@Expose
privat int number = 8;
@Expose
private Foo foo = new Foo();
}
public class Foo() {
@Expose
private Bar bar = new Bar();
}
import java.awt.Point;
public class Bar() {
@Expose
ArrayList<Point> list = new ArrayList()<>;
}
Bitte beachten Sie dies - http://stackoverflow.com/questions/20773850/gson-typetoken-with-dynamic-arraylist-item-type –
In seinem Fall, dass er direkt den Typ angibt kann, weil er nur will um das Objekt 'src' wie' toJSON (src, type) 'zu konvertieren. Aber in meinem Fall hat das Objekt 'data' nicht den Typ' ArrayList', sondern 'Data'. – Baschdl
lesen Sie die API auf GsonBuilder. Die Methode registerTypeAdapter scheint vielversprechend zu sein. – DwB