0
实施例类:爪哇GSON - 序列化&反序列化类泛型类型为List
public class A
{
String Name;
List<B> GenericsList;
//Getters & Setters & Constructors
}
public class B
{
String Title;
//Getters & Setters & Constructors
}
public class C extends B
{
String Something;
//Getters & Setters & Constructors
}
如果我序列类A的一个实例是这样的:
List<B> bList = new ArrayList<>();
C bObj = new C("name", "something text");
bList.add(bObj);
A aObj = new A("name", bList);
String serialized = new Gson.toJson(aObj);
A deserializedA = new Gson.fromJson(serialized);
我失去的C亚型在列表。 我知道如何解决这一点,如果它只是一个列表序列化是这样的:
Gson gson = new Gson();
List<B> bList = new ArrayList<>();
Type bType = new TypeToken<List<B>>() {}.getType();
gson.toJson(bList, bType);
gson.fromJson(json, bType);
的问题是,我的泛型列表是与其他参数的对象内。我该怎么做呢?
编辑1: 也许我不清楚具体问题。
当我进行序列化和反序列化创建的对象上没有错误而是获得这样的: 对象A: 名称=“名称” GenericsList = {对象C}
我得到: 对象A: Name =“name” GenericsList = {Object B}
我失去了子类型C的细节。
您可以发布与预期输出一个完整的例子吗?请详细了解您所看到的行为以及您所问的内容。 – 2015-03-02 16:24:21
您应该阅读[与Gson多态性](http://stackoverflow.com/questions/5800433/polymorphism-with-gson)。 – 2015-03-02 16:32:42
没有帮助。问题是,我想要反序列化的对象中有一个泛型类型列表。找不到具体的答案.... – Meh 2015-03-02 17:08:40