我对我想要使用的API的响应有疑问,我正在使用 Retrofit 1.9.0 和 GSON 2.3.1 开发一个消耗此API的APP强>
我要解析的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。
答案 0 :(得分:0)
尝试为回调指定具体类型,例如HashMap
。 Map
是一个界面。
Callback< <HashMap<String, User> > callback;
通常你会得到转换异常而不是解析错误,但值得一试。