Android 杰克逊&x2B;Gson&x2B;改造应为BEGIN\u对象,但为BEGIN\u数组
我知道有人问了很多问题,但我发现没有一个问题能解决我的特殊问题 这是我的JSON [JSON URL][1]Android 杰克逊&x2B;Gson&x2B;改造应为BEGIN\u对象,但为BEGIN\u数组,android,json,jackson,gson,retrofit2,Android,Json,Jackson,Gson,Retrofit2,我知道有人问了很多问题,但我发现没有一个问题能解决我的特殊问题 这是我的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 S
[
{
"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);
}
}
public interface Api {
@GET("/data/heatmap_stations.json")
Call<Zona> getZona();
}
Public class Zonas extends ArrayList<Zona> {}
这是我的界面
Api.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);
}
}
public interface Api {
@GET("/data/heatmap_stations.json")
Call<Zona> getZona();
}
Public class Zonas extends ArrayList<Zona> {}
公共接口Api{
@获取(“/data/heatmap\u stations.json”)
调用getZona();
}
我有点理解它发生的原因,因为响应是一个JSON数组,但是Jackson+Gson需要一个JSON对象
我尝试创建如下POJO:
Zonas.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);
}
}
public interface Api {
@GET("/data/heatmap_stations.json")
Call<Zona> getZona();
}
Public class Zonas extends ArrayList<Zona> {}
公共类Zonas扩展了ArrayList{}
更改接口中的调用签名和改装调用,将单个DTO替换为复数(从调用public interface Api {
@GET("/data/heatmap_stations.json")
Call<Zona> getZona();
}
公共接口Api{
@获取(“/data/heatmap\u stations.json”)
调用getZona();
}
到
公共接口Api{
@获取(“/data/heatmap\u stations.json”)
调用getZona();
}
您告诉它期望一个
Zona
对象,但它返回一个Zona
对象数组关于这个确切的错误有很多重复项。提示:您返回的是一个JSONArray,而不是JSONObject,因此您可能希望在调用中使用List
。此外,Jackson和Gson执行相同的操作,因此我不确定您为什么同时使用这两个对象