【发布时间】:2016-09-26 19:51:27
【问题描述】:
我知道这个问题被问了很多,但是我发现的问题都没有解决我的具体问题。
这是我的 JSON
[JSON URL][1]
[
{
"unit":"IMECA",
"value":29,
},
{
"unit":"IMECA",
"value":43,
}
]
这是我的 DTO
Zona.java
public class Zona {
private String unit;
private int value;
public String getUnit() {
return unit;
}
public void setUnit(String unit) {
this.unit = unit;
}
public int getValue() {
return value;
}
public void setValue(int value) {
this.value = value;
}
@Override
public String toString() {
return String.valueOf(unit) + ": " + String.valueOf(value);
}
}
这是我的界面
Api.java
public interface Api {
@GET("/data/heatmap_stations.json")
Call<Zona> getZona();
}
我有点理解 为什么会发生,因为响应是 JSON 数组,但 Jackson + Gson 期待单个 JSON 对象。
我尝试像这样创建一个 POJO:
Zonas.java
Public class Zonas extends ArrayList<Zona> {}
并更改Interface和Retrofit调用中的Call签名,将单个DTO替换为复数,(从Call
【问题讨论】:
-
关于那个确切的错误有很多重复。提示:您返回的是 JSONArray,而不是 JSONObject,因此您可能希望在调用中使用
List<Zona> -
另外,Jackson 和 Gson 执行相同的操作,所以我不知道为什么你有两个
标签: android json jackson gson retrofit2