当前位置: 首页 > 知识库问答 >
问题:

改型:应为BEGIN_OBJECT,但在第2行第2列路径处为BEGIN_ARRAY

富波光
2023-03-14

我有一个Json和搜索特性,我的问题是:

我得到了3个项目:
1。测试1
2。测试2
3。测试3

错误:

 com.google.gson.JsonSyntaxException: java.lang.IllegalStateException: Expected BEGIN_OBJECT but was BEGIN_ARRAY at line 2 column 2 path $

要提一下,搜索“2”时会显示“测试2”,但搜索“测试2”会抛出错误。

它在工作于基本的Json,在切换到新的库之后,它停止了工作。

{"roms_center":[{"device_name":"Test 1","roms_count":"1","device_id":"0"},{"device_name":"Test 2","roms_count":"2","device_id":"1"}]}
        @GET("api.php")
    Call<Model> getRoms_center(@Query("company_name") String name);

型号:

    private class Model{
    private List<CatItem> roms_center;

    public List<CatItem> getRoms_center() {
        return roms_center;
    }

    public void setRoms_center(List<CatItem> roms_center) {
        this.roms_center = roms_center;
    }

}

使连接方法(库方法):

Retrofit retrofit = new Retrofit.Builder()
            .baseUrl(Base)
            .addConverterFactory(GsonConverterFactory.create())
            .build();

    ReApi Api = retrofit.create(ReApi.class);
Connection = Api.getRoms_center(Company);
Connection.enqueue(new Callback<Model>() {
        @Override
        public void onResponse(Call<Model> call, Response<Model> response) {

            ProgressLoading.setVisibility(View.GONE);
            isLoading = false;

            List<CatItem> ROMs = response.body().getRoms_center();
            for(int i = 0 ; i < ROMs.size() ; i ++ ){
                CatItem Item = new CatItem();

                Item.setDevice_Name(ROMs.get(i).getDevice_Name());
                Item.setTotal_Downloads(ROMs.get(i).getTotal_Downloads());
                Item.setDevice_ID(ROMs.get(i).getDevice_ID());

                if(rowListItem == null)
                    rowListItem = new ArrayList<>();

                rowListItem.add(Item);
            }

            Adapter.notifyDataSetChanged();

        }

共有1个答案

关翰
2023-03-14

尝试更改界面:

 @GET("api.php")
Call<List<Model>> getRoms_center(@Query("company_name") String name);
 类似资料: