获得错误预期BEGIN_ARRAY但在第1行第2列路径$是BEGIN_OBJECT

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了获得错误预期BEGIN_ARRAY但在第1行第2列路径$是BEGIN_OBJECT相关的知识,希望对你有一定的参考价值。

我是Rxandroid和Retrofit的新手,并收到以下错误:

预期BEGIN_ARRAY但在第1行第2列路径$为BEGIN_OBJECT

我的活动中有以下代码:

 disposable.add(apiService.getIncidents(1, "true")
                .subscribeOn(Schedulers.io())
                .observeOn(AndroidSchedulers.mainThread())
                .subscribeWith(new DisposableObserver<IncidentResponse>() {
                    @Override
                    public void onNext(IncidentResponse response) {
                        mResponse = response;
                        mIncidentAdapter.notifyDataSetChanged();
                    }

                    @Override
                    public void onError(Throwable e) {
                        Log.e(TAG, "onError: " + e.getMessage());
                    }

                    @Override
                    public void onComplete() {

                    }
                })

我的ApiService如下所示:

public interface ApiService {

    @GET("api/now/v1/table/incident")
    Observable<IncidentResponse> getIncidents(@Query("priority") int priority, @Query("active") String active);
}

而IncidentResponse如下所示:

public class IncidentResponse {
    @SerializedName("result")
    private List<Incident> incidents;

    public IncidentResponse() {

    }
    public IncidentResponse(List<Incident> incidents) {
        this.incidents = incidents;
    }

    public List<Incident> getIncidents() {
        return incidents;
    }

    public void setIncidents(List<Incident> incidents) {
        this.incidents = incidents;
    }
}
答案

该错误告诉您,您期望的数组实际上是一个对象。虽然你还没有展示你的json是怎样的,但可以肯定它是因为private List<Incident> incidents;再试一次然后用private Incident incident;

以上是关于获得错误预期BEGIN_ARRAY但在第1行第2列路径$是BEGIN_OBJECT的主要内容,如果未能解决你的问题,请参考以下文章

预期为 BEGIN_ARRAY,但在第 1 行第 2 列改造时为 BEGIN_OBJECT2

更改我的程序接受文件的方式将从GSON创建此错误:预期BEGIN_ARRAY但在第1行第2列路径$ BEGIN_OBJECT?

改造预期的 begin_array 但在第 1 行第 2 列路径 $ Android Studio 处是 begin_object

Retrofit2 Android:预期 BEGIN_ARRAY 但在第 1 行第 2 列路径 $ 处为 BEGIN_OBJECT

预期BEGIN_ARRAY但在第1行第2列是BEGIN_OBJECT

Retrofit2:预期为 BEGIN_ARRAY,但在第 1 行第 268 列路径 $[0].images 处为 STRING