Android-使用Retrofit

时间:2019-06-20 08:33:50

标签: json arraylist retrofit2

我有没有数组名的json repose。

下面是直到我完成的代码。

JSON响应

[
    {
        "id": 1,
        "user_id": 101,
            "name": "abc",
        "number": 1234567890
    },
    {
        "id": 2,
            "user_id": 102,
         "name": "xyzzy",
         "number": 8888888888
    },
    {
        "id": 3,
        "user_id": 103,
        "name":"sdfdsdv",
        "number": 2222222222
    }
]

接口类

public interface ApiInterface {

@GET("user/details”)
Call<List<User_List>> getUser(
        @Query(“id”)String id
);
}

User_List类

public class User_List {

    @SerializedName("id")
    @Expose
    int id;
    @SerializedName("user_id")
    @Expose
    int user_id;
    @SerializedName("name")
    @Expose
    String name;
    @SerializedName("number")
    @Expose
    Int number;

    public int getId() {
        return id;
    }

    public int getUser_id() {
        return user_id;
    }

    public int getNumber() {
        return number;
    }

    public String getName() {
        return name;
    }
}

MainActivity类

Public void fetch() {

        ApiInterface apiInterface = ApiClient.getRetrofit().create(ApiInterface.class);
        Call<List<User_List>> user = apiInterface.getUser(id);

        user(new Callback<List<user_List>>() {
            @Override
            public void onResponse(Call<List<user_List>> call, retrofit2.Response<List<user_List>> response) {
                try{


                    if (response.isSuccessful()) {

                        for (int i = 0; i < user_list(); i++) {
                            int id = user_list.get(i).getId();
               String name = user_list.get(i).getName();
                        }
                    }else {

                    }

                }catch (Exception e){
                    e.printStackTrace();
                }
            }

            @Override
            public void onFailure(Call<ArrayList<ProductEnquiry_Contributor>> call, Throwable t) {

            }
        });
}

我试图解析它,但是找不到成功,有人可以建议我如何使用Retrofit解析这种类型的响应吗?

这让我失败了 错误:应为BEGIN_ARRAY,但在第1行第2列路径$

处为BEGIN_OBJECT

1 个答案:

答案 0 :(得分:0)

您可以这样做

 @POST("endpoint)
    Call<List<yourPOJO> methodname(@Body BodyPOJO bodyPojo);

@POST("endpoint)
        Call<Response<List<yourPOJO>> methodname(@Body BodyPOJO bodyPojo);