【问题标题】:Parse a json object with multiple sub-objects inside with GSON使用 GSON 解析包含多个子对象的 json 对象
【发布时间】:2015-09-07 14:11:19
【问题描述】:

我想使用的 API 的响应存在问题,我正在开发一个使用 Retrofit 1.9.0GSON 2.3.1 使用此 API 的应用程序强>。

我要解析的 Json 是这样的:

{
  "user1": {
    "id": 1,
    "name": "foo",
    "address": "bar"
  },

  "user2":{
    "id": 2,
    "name": "foo",
    "addres":"bar"
  },

  ... it can be any number of users ...

  "userN":{
    "id": N,
    "name": "foo,
    "address": "bar"
  }

}

所以我有一个名为 User 的 POJO:

public class User{
    private int id;
    private String name;
    private String address;

    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 String getAddress() {
        return address;
    }
    public void setAddress(String address) {
        this.address = address;
    }
}

我试图用配置Map<String, User>解析那个json:

Callback< <Map<String, User> > callback

但是当我运行它时,我有一个 GSON 错误:

gson expecting array but found object

如何正确解析 json?

PD:我无法更改 API 响应,它是一个外部 API。

【问题讨论】:

    标签: json gson retrofit


    【解决方案1】:

    尝试为你的回调指定一个具体的类型,比如HashMapMap 是一个接口。

    Callback< <HashMap<String, User> > callback;
    

    通常你会得到转换异常而不是解析错误,但值得一试。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-12-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多