2016-04-27 2 views
0

Я использую retrofit2 в своем проекте, и мне нужно разобрать некоторый ответ json в пользовательский объект. Так что я создал десериализатор и назвал его в GsonBuilderМожно ли разобрать json без создания CallAdapter в Retrofit2

private final Gson _gson = new GsonBuilder() 
    .registerTypeAdapter(DaysList.class, new DaysDeserializer()) 
    .create(); 

После этого я определил дооснащение

Retrofit retrofit = new Retrofit.Builder() 
    .baseUrl(_activity.getString(R.string.config_api_url)) 
    .addConverterFactory(GsonConverterFactory.create(_gson)) 
    .build(); 

Но с определенной службой модифицированной

Call<DaysList> retrofitHolidaysRequest() 

я получил исключение. После этого я изменил метод подпись методы обслуживания и он стал:

DaysList retrofitHolidaysRequest() 

Также я добавил Retrofit.Builder мой собственный CallAdapter.Factory и все работали как мне нужно:

Retrofit retrofit = new Retrofit.Builder() 
    .baseUrl(_activity.getString(R.string.config_api_url)) 
    .addConverterFactory(GsonConverterFactory.create(_gson)) 
    .addCallAdapterFactory(new ResponseCallAdapterFactory()) 
    .build(); 

Поэтому вопрос : возможно ли создать собственные десериализаторы без определения собственных CallAdapters? Если это возможно, то что я сделал не так?

+0

Итак, если вы отклонили мой вопрос, пожалуйста, объясните, почему – darkchaos

ответ

0

Как было упомянуто в this answer Мне нужно использовать RxJavaCallAdapterFactory. Мне непонятно, почему, потому что я не использую RxJava, но он хорошо работает

Смежные вопросы