在动态添加对象时需要通过 Retrofit post JSON 作为对象数组
Need to post JSON as an array of objects via Retrofit while dynamically adding objects
我必须 post 一个 JSON 对象数组。 JSON 示例粘贴在下面:
[
{
"checklistkey": "what is your age ___ and ur bd___",
"checklistvalue": "yes",
"taskId": "PMTASK-cmms-01-71-1"
},
{
"checklistkey": "how r you___? ______",
"checklistvalue": "no",
"taskId": "PMTASK-cmms-DE01-71-1"
}
]
这里的object个数会根据之前请求中收到的ID动态添加。
现在的 POJO 看起来像:
public class CheckListAddRequest {
@SerializedName("taskId")
@Expose
private String taskId;
@SerializedName("checklistkey")
@Expose
private String checklistkey;
@SerializedName("checklistvalue")
@Expose
private String checklistvalue;
public String getTaskId() {
return taskId;
}
public void setTaskId(String taskId) {
this.taskId = taskId;
}
public String getChecklistkey() {
return checklistkey;
}
public void setChecklistkey(String checklistkey) {
this.checklistkey = checklistkey;
}
public String getChecklistvalue() {
return checklistvalue;
}
public void setChecklistvalue(String checklistvalue) {
this.checklistvalue = checklistvalue;
}
public CheckListAddRequest(String taskId, String checklistkey, String checklistvalue) {
this.taskId = taskId;
this.checklistkey = checklistkey;
this.checklistvalue = checklistvalue;
}}
对此的 Retrofit 调用是:
@POST("cmms")
@Headers("Content-Type: application/json")
Call<CheckListAddResponse> getCheckListAdd(@Body CheckListAddRequest checkListAddRequest,
@Header("X-Auth-Token") String token,
@Header("workspace") String workspace);
现在,在添加创建 JSON 请求的详细信息时,我会这样写:
CheckListAddRequest checkListAddRequest = new CheckListAddRequest(taskNumber, checkDesc, statusString);
现在如果我在请求中有多个对象,我该如何发送?
这应该是一个 array/list 如果它是多个动态对象,您可以轻松地更改项目添加或从列表中删除并发送
ArrayList.
做这个小改动。
@POST("cmms")
@Headers("Content-Type: application/json")
Call<CheckListAddResponse> getCheckListAdd(@Body ArrayList<CheckListAddRequest> checkListAddRequest,
@Header("X-Auth-Token") String token,
@Header("workspace") String workspace);
现在传递数组列表或列表中的值。
我必须 post 一个 JSON 对象数组。 JSON 示例粘贴在下面:
[
{
"checklistkey": "what is your age ___ and ur bd___",
"checklistvalue": "yes",
"taskId": "PMTASK-cmms-01-71-1"
},
{
"checklistkey": "how r you___? ______",
"checklistvalue": "no",
"taskId": "PMTASK-cmms-DE01-71-1"
}
]
这里的object个数会根据之前请求中收到的ID动态添加。
现在的 POJO 看起来像:
public class CheckListAddRequest {
@SerializedName("taskId")
@Expose
private String taskId;
@SerializedName("checklistkey")
@Expose
private String checklistkey;
@SerializedName("checklistvalue")
@Expose
private String checklistvalue;
public String getTaskId() {
return taskId;
}
public void setTaskId(String taskId) {
this.taskId = taskId;
}
public String getChecklistkey() {
return checklistkey;
}
public void setChecklistkey(String checklistkey) {
this.checklistkey = checklistkey;
}
public String getChecklistvalue() {
return checklistvalue;
}
public void setChecklistvalue(String checklistvalue) {
this.checklistvalue = checklistvalue;
}
public CheckListAddRequest(String taskId, String checklistkey, String checklistvalue) {
this.taskId = taskId;
this.checklistkey = checklistkey;
this.checklistvalue = checklistvalue;
}}
对此的 Retrofit 调用是:
@POST("cmms")
@Headers("Content-Type: application/json")
Call<CheckListAddResponse> getCheckListAdd(@Body CheckListAddRequest checkListAddRequest,
@Header("X-Auth-Token") String token,
@Header("workspace") String workspace);
现在,在添加创建 JSON 请求的详细信息时,我会这样写:
CheckListAddRequest checkListAddRequest = new CheckListAddRequest(taskNumber, checkDesc, statusString);
现在如果我在请求中有多个对象,我该如何发送?
这应该是一个 array/list 如果它是多个动态对象,您可以轻松地更改项目添加或从列表中删除并发送
ArrayList
做这个小改动。
@POST("cmms")
@Headers("Content-Type: application/json")
Call<CheckListAddResponse> getCheckListAdd(@Body ArrayList<CheckListAddRequest> checkListAddRequest,
@Header("X-Auth-Token") String token,
@Header("workspace") String workspace);
现在传递数组列表或列表中的值。