java - Jackson - 使用 loadDataFromNetwork() 方法通过 Robospice 读取 JSON 数组

标签 java android arrays json robospice

我正在尝试读取具有以下格式的 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/

相关文章:

java - Recyclerview 重复 Json

java - 在 Java 中将毫秒转换为 TDateTime

c - C 中的数组包含不正确的值

android - Android设备上的单声道/立体声录音有什么区别

copy_to_user 一个包含数组(指针)的结构

javascript - 简单 JSON 调用的 console.log() 错误行为

java - 布局 - 图像不在底部且重叠

java - 如何控制ThreadPoolTask​​Executor中正在运行的线程数量?

java - Java 8 中超过 2 个 groupingBy 操作

android - 长时间获取子区域为空?