【问题标题】:Retrofit recyclerview Expected a string but was BEGIN_OBJECT at line 1 column 2 pth $Retrofit recyclerview 需要一个字符串,但在第 1 行第 2 列第 BEGIN_OBJECT $
【发布时间】:2019-12-19 11:50:06
【问题描述】:

我正在使用改造的 get 方法从服务器获取一些详细信息。

我的改造界面是

@GET("studentlist/{schoolid}/{driverid}")
    Call<String> getStudentList(@Path("schoolid") String schoolid,@Path("driverid") String driverid);

当我调用我的活动时,我会从捆绑包中获取两个查询以及像

这样的数据

        Bundle bundle = getIntent().getExtras();
        schoolname = bundle.getString("school_id");
        driverid = bundle.getString("dri_number");

Call<String> call = api.getStudentList(schoolname, driverid);
        call.enqueue(new Callback<String>() {
            @Override
            public void onResponse(Call<String> call, Response<String> response) {
                Toast.makeText(StudentListActivity.this, response.message(), Toast.LENGTH_SHORT).show();
                if (response.isSuccessful()){
                    if (response.body() != null){
                        Toast.makeText(StudentListActivity.this, response.body(), Toast.LENGTH_SHORT).show();
                        String jsonResponse = response.body().toString();
                        writeRecycler(jsonResponse);
                    } else {
                        Log.i("onEmptyResponse", "Returned empty response");
                    }
                }
            }

            @Override
            public void onFailure(Call<String> call, Throwable t) {
                Toast.makeText(StudentListActivity.this, t.getMessage(), Toast.LENGTH_SHORT).show();
            }
        });

并像

一样保存响应
    @SerializedName("status")
    private String status;

    @SerializedName("res")
    public List<StudentListResponse.StudentsList> resp = new ArrayList<>();

    public String getStatus() {
        return status;
    }

    public void setStatus(String status) {
        this.status = status;
    }

【问题讨论】:

    标签: java android json retrofit


    【解决方案1】:

    可能您的 json 结构有误。验证您的 JSON 结构并进行验证。

    验证您的 JSON 数据是否以开放引号开头。

    Gson 期望您的 JSON 字符串以对象左大括号开头。例如

    {
    

    但是你传递给它的字符串以一个开引号开始

    "
    

    【讨论】:

      猜你喜欢
      • 2018-06-26
      • 1970-01-01
      • 1970-01-01
      • 2016-01-02
      • 1970-01-01
      • 2021-08-05
      • 1970-01-01
      • 1970-01-01
      • 2021-04-28
      相关资源
      最近更新 更多