Как отправить массив объектов в модифицированный POST?

Сервер ожидает что-то вроде этого:

special_array = [{param1 = "string1", param2 = "string2"}, {param1 = "string3", param2 = "string4"}]; 

Нужно ли создавать собственный конвертер?

Сначала создайте интерфейс обратного вызова, подобный этому, и передайте весь класс Object.

  @POST(URL) public void newObject(@Body YourObject object, Callback<Boolean> success); 

Retrofit использует Gson для сериализации и десериализации JSON по умолчанию. Например, если ваш класс Object выглядит следующим образом:

 public class YourObject { @Expose private String param1; @Expose private String param2; /** * * @return * The param1 */ public String getParam1() { return param1; } /** * * @param param1 * The param1 */ public void setParam1(String param1) { this.param1 = param1; } /** * * @return * The param2 */ public String getParam2() { return param2; } /** * * @param param2 * The param2 */ public void setParam2(String param2) { this.param2 = param2; } } 

Затем Gson автоматически сериализуется в следующий JSON,

 [ { "param1": "string1", "param2": "string2" }, { "param1": "string3", "param2": "string4" } ] 

И все готово!

Мне просто пришлось построить более сложный объект, который учитывал оба параметра, что-то вроде этого:

 ComplexRequestObject complexRequestObject = new ComplexRequestObject(); complexRequestObject.param1 = new SemiComplexObject[]{ new SemiComplexObject("value1", "valued2")}; complexRequestObject.param2 = "value3";