Как поместить массив JSON в тело запроса для модернизации?

API сервера принимает массив JSON в теле запроса. Как это:

[
  {
    "key1" : "value1",
    "key2" : "value2",
    "key3" : "value3"
  }
]

Я знаю, как поместить объект JSON в качестве тела, но как я могу поместить массив JSON в запрос на модификацию?

У меня уже есть POJO:

public class Sample {
    @SerializedName("key1")
    @Expose
    private String key1;
    @SerializedName("key2")
    @Expose
    private String key2;
    @SerializedName("key3")
    @Expose
    private String key3;
}

Вот мой класс API:

  @PATCH("//some url")
    Observable<ResponseBody> patchRequest(
            // ... other params
            @Body Sample sampleBody;
    );

Когда я делаю запрос, тело выглядит так:

  {
    "key1" : "value1",
    "key2" : "value2",
    "key3" : "value3"
  }

За исключением того, что мне нужно, чтобы он находился внутри массива, как показано в первом JSON.


person kyrax    schedule 16.11.2017    source источник
comment
comment
Пожалуйста, покажите пример кода, который иллюстрирует то, что вы пробовали до сих пор.   -  person Code-Apprentice    schedule 16.11.2017
comment
@Code-Apprentice, есть ли более элегантный способ вместо публикации необработанного тела JSON?   -  person kyrax    schedule 17.11.2017


Ответы (2)


Использовать список этих объектов

@POST("url")
Call<Object> doStuff(@Body List<Map<String, String>> body)
person Mihail    schedule 16.11.2017

Вернуть список Samples. Затем он будет упакован в массив JSON.

@PATCH("//some url")
Observable<ResponseBody> patchRequest(
        // ... other params
        @Body List<Sample> sampleBody;
);
person onzool    schedule 18.01.2018