Android 如何使用GSON将JSON字符串转换为对象集合?

Android 如何使用GSON将JSON字符串转换为对象集合?,android,json,gson,Android,Json,Gson,我有以下课程: public class UserObject implements Serializable { public Integer id; public String name; public String phoneno; public UserObject() { this.id = new Integer(0); this.name = ""; this.phoneno = "";

我有以下课程:

public class UserObject implements Serializable
{
    public Integer id;
    public String name;
    public String phoneno;

    public UserObject()
    {
        this.id = new Integer(0);
        this.name = "";
        this.phoneno = "";
   }
}
我有一个
json
字符串,如下所示:

[
    {
        "id": 1,
        "name": "First Name",
        "phoneno": "0123452",
    },
    {
        "id": 2,
        "name": "Second Name",
        "phoneno": "0123452",
    },
    {
        "id": 3,
        "name": "Third Name",
        "phoneno": "0123455",
   }
]
我可以使用以下代码轻松地从
UserObject
Collection
转换为
JSON

Collection users = new Vector();
UserObject userObj = new UserObject();

userObj.id=1; userObj.name="First Name"; userObj.phoneno="0123451";
users.add(userObj);
userObj.id=2; userObj.name="Second Name"; userObj.phoneno="0123452";
users.add(userObj);
userObj.id=3; userObj.name="Second Name"; userObj.phoneno="0123455";
users.add(userObj);

Gson gson = new Gson();
String json = gson.toJson(users);

但是我不知道如何将
JSON
字符串
转换为
对象的
集合
?我发现我可以使用
gson.fromJson()
,但不知道如何使用
集合。请提供帮助。

给定此JSON,您的包装器类应如下所示:

public class Data {
    private List<User> users;
    // +getters/setters
}

public class User {
    private String name;
    private String email;
    private List<User> friends;
    // +getters/setters
}
要获得用户,请使用

List<User> users = data.getUsers();
List users=data.getUsers();

以下代码允许您获取
用户对象的
集合

Type token = new TypeToken<Collection<UserObject>>() {}.getType();
Collection<UserObject> result = gson.fromJson(json, token);

你能补充一些细节吗?我还是不清楚。什么是包装类?我需要创建新的类数据吗?getUsers()的结构和返回值是什么?@ray yes您需要创建一个需要类数据,因为(DO)结构将命名和发送电子邮件,或者您可以根据您的实现更改accd,因为您还需要电话号码。非常感谢您指导这样简单的方法。它像魔法一样工作。
Type token = new TypeToken<Collection<UserObject>>() {}.getType();
Collection<UserObject> result = gson.fromJson(json, token);
[
    {
        "id": 1,
        "name": "First Name",
        "phoneno": "0123452"
    },
    {
        "id": 2,
        "name": "Second Name",
        "phoneno": "0123452"
    },
    {
        "id": 3,
        "name": "Third Name",
        "phoneno": "0123455"
    }
]