我正在尝试读取具有以下格式的 JSON 数组:[{"vehicle_id":"76","color":"red"},{"vehicle_id":"7","color":"blue"}]
, 遵循 Robospice 的 Starter Guide .
Vehicle.java
public class Vehicle {
@JsonProperty("vehicle_id")
private int vehicleID;
@JsonProperty("color")
private String color;
}
(随后是 setter 和 getter)
给出错误的类: VehiclesRequest.class
public class VehiclesRequest extends SpringAndroidSpiceRequest<Vehicle> {
private static final String METHOD = "systemVehicles";
public SystemVehiclesRequest() {
super(Vehicle.class);
}
@Override
public Vehicle[] loadDataFromNetwork() throws Exception {
return getRestTemplate().getForObject(
FULL_URL,
Vehicle[].class);
}
}
如您所见,我覆盖了 loadDataFromNetwork()
方法,然后将其传递给 spiceManager.execute()
我的 Activity 中的方法并使用自定义监听器从请求中读取数据。 但是我无法从 List<>
返回和排列(我也尝试使用 loadDataFromNetwork()
) , 这里最好的解决方法是什么? 我知道我可以用不同的方式获取数据,但我仍想使用我的监听器并能够制作 try
挡住那条路。
最佳答案
我通过添加 Vehicles
类解决了这个问题:
@JsonIgnoreProperties(ignoreUnknown = true)
public class Vehicles extends ArrayList<Vehicle> {
public Vehicles() {
}
}
并像这样更改 loadDataFromNetwork()
方法:
public Vehicles loadDataFromNetwork() throws Exception {
return getRestTemplate().getForObject(
FULL_URL,
Vehicles.class);
}
关于java - Jackson - 使用 loadDataFromNetwork() 方法通过 Robospice 读取 JSON 数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18792702/