如何在HashMap中存储一个带Gson的JSON

时间:2018-03-13 14:43:19

标签: android json hashmap

团队我需要一种正确的方法将数据存储到HashMap<>使用Gson coz我正在做的跟随Java类但是当我试图从HashMap<>获得一些价值时我得到{ {1}}错误,当我试图从NullPointerException中获取一些价值时,我成功地将Json带到了Java类中,为什么我需要将它存储在Hashmap<>中因为对象的名称非常随机,我不能为每个项目上课。

我尝试存储JSON数据的Java类:

HashMap<>

JSON:

public class Response {

private int id;
private String name;
private UserBean user;
private List<ItemsBean> items;

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 UserBean getUser() {return user;}

public void setUser(UserBean user) {this.user = user;}

public List<ItemsBean> getItems() {return items;}

public void setItems(List<ItemsBean> items) {this.items = items;}


public static class UserBean {

    private String name;

    public String getName() {return name;}

    public void setName(String name) {this.name = name;}

}


public static class ItemsBean {

    private HashMap<String, CodecBean> codec;

    public HashMap<String, CodecBean> getCodec() {return codec;}

    public void setCodec(HashMap<String, CodecBean> codec) {this.codec = codec;}

    public static class CodecBean {

        private int id;
        private int strong;
        private boolean active;
        private String sell;

        public int getId() {return id;}

        public void setId(int id) {this.id = id;}

        public int getStrong() {return strong;}

        public void setStrong(int strong) {this.strong = strong;}

        public boolean isActive() {return active;}

        public void setActive(boolean active) {this.active = active;}

        public String getSell() {return sell;}

        public void setSell(String sell) {this.sell = sell;}
    }
}}

我尝试以这种方式获取价值:

{
"id": 1001,
"name": "Super1",
"user": {
    "name": "The Super 1"
},
"items": [{
    "987987M7812b163eryrt": {
        "id": 1,
        "strong": 456,
        "active": true,
        "sell": "te"
    },
    "90812bn120893juuh": {
        "id": 2,
        "strong": 4700,
        "active": true,
        "sell": "tt"
    },
    "981273jn19203nj123rg": {
        "id": 3,
        "strong": 3000,
        "active": true,
        "sell": "ti"
    }
}]
}

请告诉我,我做错了什么?

提前致谢

1 个答案:

答案 0 :(得分:-1)

我认为您需要使用LinkedTreeMap而不是Hashmap 更改关注代码

....
private LinkedTreeMap<String, CodecBean> codec;
...