2016-04-27 11 views
0

zu erstellen Ich verwende Retrofit2 in meinem Projekt, und ich muss einige JSON-Antwort in benutzerdefiniertes Objekt analysieren. Also habe ich Deserializer und nannte es in GsonBuilderIst es möglich, Json zu analysieren, ohne CallAdapter in Retrofit2

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

Danach habe ich definiert Retrofit

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

Aber mit definierten Retrofit Service

Call<DaysList> retrofitHolidaysRequest() 

bekam ich eine Ausnahme. Danach wechselte ich zu Service-Methode Methodensignatur und es wurde:

DaysList retrofitHolidaysRequest() 

auch gearbeitet haben, fügte ich meine eigene CallAdapter.Factory und alles zu Retrofit.Builder wie ich brauche:

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

So ist die Frage ist: Ist es möglich, eigene Deserializer zu erstellen, ohne eigene CallAdapter zu definieren? Wenn es möglich ist, was habe ich dann falsch gemacht?

+0

Also, wenn Sie meine Frage downvoted bitte erklären, warum – darkchaos

Antwort

0

Wie in this answer erwähnt wurde, muss ich RxJavaCallAdapterFactory verwenden. Es ist nicht klar für mich, warum, weil ich nicht RxJava, aber es funktioniert gut

Verwandte Themen