将响应解析为列表时的更改错误

时间:2016-12-14 18:23:50

标签: json retrofit2

尝试使用改造来获取json对象数组时出现以下错误。

  

java.lang.IllegalStateException:预期为BEGIN_ARRAY,但在第1行第2列路径为STRING

请求在api接口中声明为

interface HttpRequests {

    @GET("/api/v1/emergency")
    Observable<List<Emergency>> getEmergencies(@Query("lat") Double lat,
                                                    @Query("lng") Double lng,
                                                    @Query("dist") int dist);

紧急情况定义为

public class Emergency {

    @SerializedName("emergencyUuid")
    @Expose
    private String emergencyUuid;
    @SerializedName("lat")
    @Expose
    private Double lat;
    @SerializedName("lng")
    @Expose
    private Double lng;
    @SerializedName("phoneNumber")
    @Expose
    private String phoneNumber;

    public Emergency(){};
    public Emergency(String emergencyUuid, Double lat, Double lng, String phoneNumber){
        this.emergencyUuid = emergencyUuid;
        this.lat = lat;
        this.lng = lng;
        this.phoneNumber = phoneNumber;
    }

    // getters & setters

}

当我用List<Emergency>替换String时,我可以打印看起来有点像的响应:

"[{\"emergencyUuid\":\"axkdjfiwokdfj\",\"lat\":22.22,\"lng\":33.33,\"phoneNumber\":\"12345678910\"}]"

在我看来,这是一个非常精细的json数组,只有一个紧急对象。我不明白为什么这个无法解析。我做错了什么?

0 个答案:

没有答案