Необходимо опубликовать JSON в виде массива объектов с помощью модификации при динамическом добавлении объектов

#android #retrofit #pojo

#Android #модернизация #pojo

Вопрос:

Я должен опубликовать массив объектов 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"
}
  

]

Количество объектов здесь будет добавлено динамически на основе идентификатора, полученного в предыдущем запросе.

Теперь 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;
}}
  

Для этого требуется дооснащение:

  @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);
  

Теперь, если у меня есть более одного объекта в запросе, как я могу его отправить?

Ответ №1:

Это должен быть массив / список, если в нем несколько динамических объектов, вы можете легко изменять элементы, добавлять или удалять из списка и отправлять

ArrayList< CheckListAddRequest>.

внесите это незначительное изменение.

 @POST("cmms")
@Headers("Content-Type: application/json")
Call<CheckListAddResponse> getCheckListAdd(@Body ArrayList<CheckListAddRequest> checkListAddRequest,
                                           @Header("X-Auth-Token") String token,
                                           @Header("workspace") String workspace);
  

теперь передайте значение в список массива или list.