【发布时间】:2019-10-01 15:42:54
【问题描述】:
您好,我正在尝试从 API 获取数据,但出现下一个错误:
应为 BEGIN_ARRAY,但为 BEGIN_OBJECT
我得到的数据如下:
"code": "01",
"data": {
"code": "0",
"time": "14-05-2019 16:22:28.661",
"data": [
{
"geometry": {
"BoundingBox": null,
"ExtraMembers": null,
"Type": 7,
"Coordinates": {
"Latitude": 40.401609,
"Values": [
-3.674735,
40.401609
],
"Longitude": -3.674735
},
"CoordinateReferenceSystem": null
}
},
{
"geometry": {
"BoundingBox": null,
....
获取此数据的 pojo 是下一个:
public class ApiResponse<T extends ApiResponseData> {
...
@SerializedName("data")
@Expose
private List<T> data;
...
}
public class DData implements ApiResponseData {
...
接下来是获取数据的改造调用:
public void getListOfDs(final MutableLiveData<ApiResponse<DData>> data) {
Call<ApiResponse<DData>> call = CApiInterface.getListOfDs(ID_CLIENT);
call.enqueue(new Callback<ApiResponse<DData>>() {
@Override
public void onResponse(Call<ApiResponse<DData>> call, Response<ApiResponse<DData>> response) {
ApiResponse<DData> apiResponse = response.body();
data.setValue(apiResponse);
}
@Override
public void onFailure(Call<ApiResponse<DData>> call, Throwable t) {
data.setValue(createFailedResponse());
call.cancel();
}
});
}
问题是为什么我会收到此错误,在 ApiResponse 中,在这种情况下我有一个列表,我得到一个 DData 的列表,对于另一种情况,例如响应只有一个 DData这项工作完美有什么想法吗?
知道如何解决吗?
谢谢。
【问题讨论】: