Я разрабатываю приложение, которое имеет много сетевых вызовов, и я использую для этого модификацию. Для каждого запроса я создал класс модели, и это привело к большому количеству классов моделей. Так есть любым способом избежать создания ненужных классов моделей.Как избежать создания моделей в retrofit
ответ
Да, вы можете избежать ненужных классов моделей.
например:
Предположим, что у вас есть 5 классов модели, Model_class1
является основным классом модели, и вам необходимо объявить другие 4 подмодельные классы.
class Model_class1
{
@SerializedName("Model_class2")
@Expose
private Model_class2 model_class2;
@SerializedName("Model_class3")
@Expose
private Model_class3 model_class3;
@SerializedName("Model_class4")
@Expose
private Model_class4 model_class4;
@SerializedName("Model_class5")
@Expose
private Model_class5 model_class5;
}
В фрагменте кода выше, если вы хотите только Model_class2
и Model_class3
означает, что вы должны объявить только те имена моделей в Model_class1
и остальные два. Не нужно декларировать и не нужно создавать эти два класса моделей.
да вы можете по крайней мере отправить запрос, но для получения я никогда не пробовал.
Использование JSONObject или JSONArray и передать их в качестве дооснащения @body
try {
JSONObject obj = new JSONObject();
obj.put("username", "username");
obj.put("password", "password");
RetrofitInterface.login(obj);
} catch (Exception e) {
e.printStackTrace();
}
вот ваш Модифицированная интерфейс класса
public interface RetrofitInterface{
.
.
@POST(URL)
Call login(@Body JSONObject object);
.
.
}
Для получения вы можете использовать JsonElement
в качестве ответа. Для запроса вы можете создать JSON в строку и отправить его, как я desctibe ниже:
Интерфейс
@POST("api/")
Call<JsonElement> request(@Body RequestBody body);
Запрос:
RequestBody requestBody = RequestBody.create(MediaType.parse("application/json"), inputJsonString);
call.enqueue(new Callback<JsonElement>() {
@Override
public void onResponse(Call<JsonElement> call, Response<JsonElement> response) {
if(response.isSuccessful()){
JsonElement jsonElement = response.body();
if(jsonElement.isJsonObject()){
//use any json deserializer to convert to your class.
}
else{
System.out.println(response.message());
}
}
@Override
public void onFailure(Call<JsonElement> call, Throwable t) {
System.out.println("Failed");
}
});
- 1. Как избежать создания новых моделей при сохранении сложных объектов
- 2. Как избежать дублирования моделей в проекте django?
- 3. Как избежать создания сеанса?
- 4. Избегайте создания моделей в Angular
- 5. Как избежать моделей activetecord пространства имен?
- 6. Как избежать создания `npm-debug.log`
- 7. Как избежать создания длинных конструкторов
- 8. Как избежать создания новой строки?
- 9. Как избежать создания острова даты в QlikView?
- 10. Как избежать создания объекта в Java?
- 11. Как избежать создания 'username' в django-auth
- 12. Как избежать создания объектов в python?
- 13. Как проверить правильность создания других моделей
- 14. Как программировать для создания 3D-моделей?
- 15. Петля для создания регрессионных моделей
- 16. Как избежать создания некоторого атрибута в методе создания контроллера?
- 17. Создание связанных моделей для создания в Rails?
- 18. Как избежать загрузки моих моделей в рельсы Миграция
- 19. Как избежать создания первого фрагмента перед setCurrentItem?
- 20. Как избежать случайного создания поплавка с длинной
- 21. Как я могу избежать создания перегруженных методов?
- 22. Как избежать создания объекта Rect onDraw
- 23. Как избежать создания ненужного объекта элегантным способом?
- 24. iText (Sharp) - как избежать создания пустой страницы?
- 25. Как избежать создания нежелательного индекса логстаста
- 26. Как избежать создания GameObject на экране?
- 27. JavaFx как избежать создания одного огромного контроллера
- 28. Как избежать синхронизации и создания объектов?
- 29. Параметры метода интерфейса RetroFit
- 30. MySql как избежать создания временных таблиц
Вы имеете в виду классы модели Gson? Да, есть способ. Не используйте Gson и просто разбирайте строки JSON самостоятельно –
Можете ли вы добавить пример кода? –
или всегда анализировать хэш-массив или массив hashmap –