如何使用 Retrofit2 获取 List 中的对象数据?

How get object data in List using Retrofit2?

这是我使用 Retrofit 从数据库中获取的数据。我想将此数据作为列表对象获取;

[
        {
            "id": 5,
            "name": "test12",
            "coordinate": {
                "x": 1143.9999999999995,
                "y": 575.9999999999959
            },
            "type_id": 1,
            
        },
        {
            "id": 6,
            "name": "test2222",
            "coordinate": {
                "x": 2290.15625,
                "y": 323.59374999999636
            },
            "type_id": 2,
            
        }
    ]

这是我尝试从我的数据库中调用数据的代码;

private void getHardwareCoordinates(){

        String url = Constant.baseUrl;

        TokenInterceptor interceptor=new TokenInterceptor();
        OkHttpClient client = new OkHttpClient.Builder()
                .addInterceptor(interceptor)
                .build();


        Retrofit retrofit = new Retrofit.Builder()
                .client(client)
                .baseUrl(url)
                .addConverterFactory(ScalarsConverterFactory.create())
                .addConverterFactory(GsonConverterFactory.create())
                .build();

        Api service = retrofit.create(Api .class);

        Call<List<HardwareDataResponse>> call = service.getHardwareList();
        call.enqueue(new Callback<List<HardwareDataResponse>>() {
            @Override
            public void onResponse(Call<List<HardwareDataResponse>> call, Response<List<HardwareDataResponse>> response) {
                if(response.body() != null)
                {
                    List<HardwareDataResponse> hardWareList = response.body();
                    //response data
                    
                } else {
                    //errorBody 
                }
            }
            @Override
            public void onFailure(Call<List<HardwareDataResponse>> call, Throwable t) {

               // System.out.println(t);
            }
        });

    }

这是我的序列化程序class,用于将数据作为 List 对象获取;

public class HardwareDataResponse {

    @SerializedName("id")
    @Expose
    private Integer id;

    @SerializedName("name")
    @Expose
    private String name;

    @SerializedName("type_id")
    @Expose
    private Integer type_id;

    public Integer getHardwareId() {
        return id;
    }

    public void setHardwareId(Integer id) {
        this.id = id;
    }

    public String getHardwareName() {
        return name;
    }

    public void setHardwareName(String name) {
        this.name = name;
    }

    public Integer getHardwareTypeId() {
        return type_id;
    }

    public void setHardwareTypeId(Integer type_id) {
        this.type_id = type_id;
    }

}

我想使用 List hardWareList 获取“坐标”对象数据。如何添加 HardwareDataResponse 来序列化数据。

您好,使用 [link][1] 创建模型 类 [1]: https://www.freecodeformat.com/json2pojo.php