【发布时间】:2014-06-18 22:48:53
【问题描述】:
我正在尝试在 Json 对象上使用 Gson 序列化和反序列化 Java POJO 的 ArrayList 我有一个对象 MyClass 作为
public class MyClass{
private int type
private int pos;
private Object value;
}
我有一个这些对象的 ArrayList,我将其序列化为
List<MyClass> values= null;
String json = new Gson().toJson(retValues);
json字符串是
[{"type":4,"pos":1,"value":15}]
我尝试将其反序列化为
Type myType = new TypeToken<ArrayList<MyClass>>() {}.getType();
List<MyClass> test=new Gson().fromJson(json, myType);
我收到一个错误
The JsonDeserializer com.google.gson.DefaultTypeAdapters$CollectionTypeAdapter@1141ddf failed to deserialized json object [{"type":4,"pos":1,"value":18}] given the type java.util.ArrayList<abc.MyClass>
非常感谢任何输入!
【问题讨论】:
-
我认为对象类型是问题。
-
你给它的例子对我来说很好。
-
另外,您使用的是旧版本的 Gson,请升级到版本 2。
-
以上代码对我反序列化为自定义对象列表很有帮助。使用 TypeToken 是我的问题的答案。谢谢。
标签: java json collections gson