3

[{"vehicle_id":"76","color":"red"},{"vehicle_id":"7","color":"blue"}]Robospice のスターター ガイドに従って、次の形式の JSON 配列を読み込もうとしています。

車両.java

public class Vehicle {
    @JsonProperty("vehicle_id")
    private int vehicleID;
    @JsonProperty("color")
    private String color;
}

(セッターとゲッターが続きます)

エラーが発生しているクラス: 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()カスタム リスナーを使用してリクエストからデータを読み取ります。ただし、から配列を返すことはできません(私も試しましたList<>loadDataFromNetwork()。ここで最善の回避策は何ですか?別の方法でデータを取得できることはわかっていますが、引き続きリスナーを使用して、tryその方法でブロックできるようにしたいと考えています。

4

2 に答える 2

5

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);
}
于 2013-09-14T10:43:49.430 に答える