Здравствуйте!
Скидываю вам пример кода, в данном случае я использую Retrofit c Jackson (вместо GSON)
public interface LfkServerAPI {
@GET("rest/categories/list")
Call<List<CategoryDTO>> getAllCategories();
}
@Data
public class Category {
private Long categoryId;
private String categoryName;
private String categoryDescription;
}
@Getter
@Setter
public class CategoryDTO {
private Long categoryId;
private String categoryName;
private String categoryDescription;
}
public class ApiClient {
public static Retrofit retrofit = null;
public static Retrofit getApiClient() {
if (retrofit == null) {
retrofit = new Retrofit.Builder()
.baseUrl(Constants.BASE_URL)
.addConverterFactory(JacksonConverterFactory.create())
.build();
}
return retrofit;
}
}
Обратите внимание на этот участок кода:
LfkServerAPI lfkServerAPI = ApiClient.getApiClient().create(LfkServerAPI.class);
Call<List<CategoryDTO>> allCategoriesListCall = lfkServerAPI.getAllCategories();
allCategoriesListCall.enqueue(new Callback<List<CategoryDTO>>() {
@Override
public void onResponse(Call<List<CategoryDTO>> call, Response<List<CategoryDTO>> response) {
if (!response.isSuccessful()) {
Log.d(LOG, "Ответ сервера: " + response.code());
return;
}
// Вызываем метод body() из полученного ответа, где будет наш pojo
List<CategoryDTO> categoryDTOS = response.body();
if (categoryDTOS != null) {
categoryDTOS.forEach(categoryDTO -> {
Category category = new Category();
category.setCategoryId(categoryDTO.getCategoryId());
category.setCategoryName(categoryDTO.getCategoryName());
category.setCategoryDescription(categoryDTO.getCategoryDescription());
category.save();
});
}
}
@Override
public void onFailure(Call<List<CategoryDTO>> call, Throwable throwable) {
Log.d(LOG, throwable.getMessage());
}
});