【发布时间】:2018-01-15 02:50:06
【问题描述】:
我正在尝试使用改造 2 获取 json 对象响应。我使用了 hashmap,因为键是动态的。这是我的响应类:
public class Countries {
private Map<String, Model> datas;
public Map<String, Model> getDatas() {
return datas;
}
}
Model 类是:
public class Model {
@SerializedName("country_name")
private String country_name;
@SerializedName("continent_name")
private String continent_name;
public String getCountry_name() {
return country_name;
}
public String getContinent_name() {
return continent_name;
}
}
到目前为止,我尝试过这样处理响应:
call.enqueue(new Callback<Countries>() {
@Override
public void onResponse(Call<Countries> call, Response<Countries> response) {
Map<String, Model> map = new HashMap<String, Model>();
map = response.body().getDatas();
for (String keys: map.keySet()) {
// myCode;
}
}
@Override
public void onFailure(Call<Countries> call, Throwable t) {
}
});
并且发生了这个错误:
java.lang.NullPointerException:尝试调用接口方法 'java.util.Set java.util.Map.keySet()' 在空对象引用上
JSON 响应如下所示:
{
"0": {
"country_name": "Argentina",
"continent_name": "South America"
},
"1": {
"country_name": "Germany",
"continent_name": "Europe"
}
}
那么我怎样才能在 HashMap 中得到响应呢?
【问题讨论】:
-
你能捕捉到你的调用返回的 json 字符串并发布到这里吗?
-
@Ben p.,我在问题中添加了 json 响应。