java - Retrofit2获取数据GSON抛出 "Expected BEGIN_OBJECT but was BEGIN_ARRAY at line 1 column 41 path $.data"

标签 java android retrofit retrofit2 gson

当我尝试使用 Retrofit2 + Rxjava 从 api 获取数据时,我开始使用 Retrofit:

API服务:

@GET("news/get_comments/{newsid}/{count}/{offset}")
Observable<ResultResponse<CommentList>> getComment(@Header("api_key") String key, @Path("newsid") String newsid, @Path("count")String count, @Path("offset")String offset);

public void getComment(String item_id, int pageNow) {
        int offset = (pageNow - 1) * 10;
        Log.i("commentlist", offset+"");
        Log.i("commentlist",pageNow+"");
        addSubscription(AppClient.getApiService().getComment(ApiService.KEY,item_id,"10",offset+""), new SubscriberCallBack<CommentList>() {
            @Override
            protected void onSuccess(CommentList response) {
                Logger.i("commentist",response.toString());
                mvpView.onGetCommentSuccess(response);
            }

        });
    }

GSON 抛出错误:com.google.gson.JsonSyntaxException: java.lang.IllegalStateException: Expected BEGIN_OBJECT but was BEGIN_ARRAY at line 1 column 41 path $.data

最佳答案

这是因为您的响应以 [] 而不是 {} 开头,实际上您得到的是 jsonarray 而不是 jsonobject

关于java - Retrofit2获取数据GSON抛出 "Expected BEGIN_OBJECT but was BEGIN_ARRAY at line 1 column 41 path $.data",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44975973/

相关文章:

java - 将 .sql 文件导入 sqlite 数据库

android livedata进行顺序调用

java - 这个命令是什么意思 - "nohup ./standalone.sh -b 0.0.0.0 &"?

android - 在 Authenticator 中设置 SharedPreference?

android - 如何为不同状态设置图像按钮背景图像?

android - 以编程方式定位 View stub

java - Retrofit 2 总是返回 onFailure

android - 如何在 Retrofit 中使用 Gson 转换器解析关联数组?

java - 如何使用java编辑文本文件中的记录?

java - 初学者遇到返回值问题 - JAVA