【发布时间】:2011-08-23 11:51:22
【问题描述】:
我正在尝试使用 GSON 在 Android 中序列化/反序列化 JSON。我有两个看起来像这样的类:
public class Session {
@SerializedName("name")
private String _name;
@SerializedName("users")
private ArrayList<User> _users = new ArrayList<User>();
}
和:
public class User {
@SerializedName("name")
private String _name;
@SerializedName("role")
private int _role;
}
我正在使用 GSON 对数据进行序列化/反序列化。我是这样序列化的:
Gson gson = new Gson();
String sessionJson = gson.toJson(session);
这将生成如下所示的 JSON:
{
"name":"hi",
"users":
[{"name":"John","role":2}]
}
我像这样反序列化:
Gson gson = new Gson();
Session session = gson.fromJson(jsonString, Session.class);
我在拨打此电话时遇到错误。
DEBUG/dalvikvm(739): wrong object type: Ljava/util/LinkedList; Ljava/util/ArrayList;
WARN/System.err(739): java.lang.IllegalArgumentException: invalid value for field
我不知道这个错误是什么意思。我不认为自己做任何严重错误的事情。有什么帮助吗?谢谢!
【问题讨论】:
-
当我将 Session 类中的用户列表从 ArrayList 更改为 List 时,问题似乎消失了。这会导致 GSON 出现问题吗?