Как разместить массив в retrofit android
Как я могу опубликовать следующий параметр в retrofit через метод post ?
"params":{"body": {
"learning_objective_uuids": [
"ED4FE2BB2008FDA9C8133FF462959C0968FAB98C4D1DB8F2"
],
"note": "FasfAFSASFASDF",
"user_uuids": [
"EDF8B7EC20005ACC5C40FF7D6E988801F5BAD83CBBCDB97F",
"EDF8F78F2000569C64101F244AA20C0070D2A7FCB1939E19"
]
}
}
} }
3 ответов
@FormUrlEncoded
@POST("service_name")
void functionName(
@FieldMap Map<String, String> learning_objective_uuids, @FieldMap Map<String, String> user_uuids, @Field("note") String note,
Callback<CallBackClass> callback
);
лучшее решение : используйте arraylist.. Ссылка : johnsonsu
@FormUrlEncoded
@POST("service_name")
void functionName(
@Field("learning_objective_uuids[]") ArrayList<String> learning_objective_uuids, @Field("user_uuids[]") ArrayList<String> user_uuids, @Field("note") String note,
Callback<CallBackClass> callback
);
см. этот пример, где мне нужно передать данные полей регистрации как запрос json
@POST("magento2apidemo/rest/V1/customers")
Call<RegisterEntity> customerRegistration(@Body JsonObject registrationData);
здесь я создал данные регистрации специалистов составляет
private static JsonObject generateRegistrationRequest() {
JSONObject jsonObject = new JSONObject();
try {
JSONObject subJsonObject = new JSONObject();
subJsonObject.put("email", "abc@xyz.com");
subJsonObject.put("firstname", "abc");
subJsonObject.put("lastname", "xyz");
jsonObject.put("customer", subJsonObject);
jsonObject.put("password", "password");
} catch (JSONException e) {
e.printStackTrace();
}
JsonParser jsonParser = new JsonParser();
JsonObject gsonObject = (JsonObject) jsonParser.parse(jsonObject.toString());
return gsonObject;
}
заходим на этот сайт : JSON Schema 2 POJO
вставьте пример формата Json, а затем
выберите тип источника: JSON, стиль аннотации: нет
создайте класс POJO, например, ваше имя класса: MyPOJOClass
затем в вашем Api:
@POST("endpoint")
public Call<Void> postArray(@Body MyPOJOClass mypojoclass);
Если у вас тоже есть заголовки, вы можете добавить их в такие параметры:
@Header("Accept") String accept,@Header("Content-Type") String contentType
@Edit: для вашего комментария оформить заказ мой ответ : how-to-use-gson-2-0-on-onresponse-from-retrofit-2-0