如何使用 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
这是我使用 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