Я хочу сериализовать Java-объект JSON с помощью библиотеки GSON от Google. Он отлично работает, если не встречается ArrayList. GSON не может обрабатывать общий тип ArrayList. @Явор Георгиев описал решение с помощью метода registerSerializer (...), но этот метод не существует в новых выпусках.Сериализация ArrayList (общие типы) с помощью GSON
gson.registerSerializer(ArrayList.class, new CollectionSerializer<Object>());
http://hashtagfail.com/post/44606137082/mobile-services-android-serialization-gson
В моем случае ArrayList вложен в классе три слоя под объектом, который передается toJSON(...)
.
Кто-нибудь знает, как решить эту проблему?
структура такова:
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()<>;
}
Пожалуйста, обратитесь это - http://stackoverflow.com/questions/20773850/gson-typetoken-with-dynamic-arraylist-item-type –
В его случае он может определяет тип непосредственно, потому что он только хочет для преобразования объекта 'src' как' toJSON (src, type) '. Но в моем случае объект 'data' не имеет типа' ArrayList', это 'Data'. – Baschdl
читать api на GsonBuilder. метод registerTypeAdapter кажется многообещающим – DwB