【发布时间】:2014-11-25 12:09:36
【问题描述】:
我有一个 Java Web 服务响应作为一个对象,它有一个以整数作为键和自定义对象作为值的映射。自定义对象又包含另一个自定义对象的列表。当我尝试反序列化响应时,除自定义对象列表外,所有内容都被反序列化。列表为空。
我的代码:
String dataFromServer ="";
GsonBuilder gsonBuilder = new GsonBuilder();
Gson gson = gsonBuilder.create();
Type listType = new TypeToken<OuterCustomResponse>() {}.getType();
OuterCustomResponse respo = gson.fromJson(data, Books.class);
OuterCustomResponse 具有以下结构:
OuterCustomResponse {
private int age;
private String name;
private Map<Integer,CutomObj1> obj;
}
CtomObj1 {
List<CustomObj2> customObj2;
}
问题是响应包含年龄、姓名和地图对象,但在地图对象内部,列表是空的。我尝试通过实现 JSON 反序列化器为 CustomObj2 编写反序列化器,但没有用。任何帮助表示赞赏。
【问题讨论】:
-
CustomObj1class 是否实现了Serializable?也许,如果没有,则无法对其进行序列化,并且您会得到错误的输出。 -
我尝试在 customobj1 中实现 srializablr,但没有成功。但是 customobj1 有其他字符串和 intgr 属性,它们是正确获得的。
-
好的,所以你的问题只是
CustomObj2?你里面有什么?也是Serializable吗? -
这是一个自定义类,我尝试了 implmnig serializabl ,但没有运气。该类具有原始数据类型变量
-
请分享json文本
标签: java json gson deserialization unmarshalling