同一json

时间:2018-04-10 18:17:27

标签: java android

嗨,我有这个JSON我用gson映射“用户”但我需要合并地图(在这个例子中2但可以更多)仅在1个地图或1个列表中因为我需要发送合并到自定义适配器,你可以看到我有2个用户列表,我访问每个列表用户和属性没有问题,但我需要创建只有1个地图或列表,无论如何,只有一个巩固mutivalue地图?

[{
    "id": 999098,
    "name": "Legendary Users",
    "users": {
        "98087ffg5": {
            "Age": 20,
            "name": "dighak"
        },
        "0987499gg8": {
            "Age": 18,
            "name": "kijhg"
        },
        "1231ghty56": {
            "Age": 19,
            "name": "ramn1"
        }
    }
},
{
    "id": 999098,
    "name": "Best Users",
    "users": {
        "12312bvf123": {
            "Age": 20,
            "name": "thispa"
        },
        "50827gh65": {
            "Age": 21,
            "name": "vista1"
        }
    }
}]

这是我的Response.class

public class Response {

private int id;
private String name;
private Map<String,UsersBean> users = new LinkedHashMap<>();

public int getId() {return id;}
public void setId(int id) {this.id = id;}
public String getName() {return name;}
public void setName(String name) {this.name = name;}

public Map<String,UsersBean> getUsers() {return users;}

public void setUsers(Map<String,UsersBean> users) {this.users = users;}

public static class UsersBean {

        private int Age;
        private String name;

        public int getAge() {return Age;}
        public void setAge(int Age) {this.Age = Age;}
        public String getName() {return name;}
        public void setName(String name) {this.name = name;}
    }
}

我可以像这样访问每个用户列表

Response response;
response.get(0).getUsers().get("98087ffg5").getAge();

但是我需要一个包含所有键和各自值的用户列表的合并数据,你能帮我解决这个问题吗?我需要创建一个新的类o映射并用于循环?访问所有像:

list/map.getUsers().get("98087ffg5").getAge();

1 个答案:

答案 0 :(得分:0)

为什么不使用Response类的数组或arrayList?

例如,设置JSON字符串:

String jsonString = new Gson().toJson(responseArray);

...并从中得到一系列回复:

Response[] responseArray = new Gson().fromJson(jsonString, Response[].class);