2016-04-27 75 views
0

我用retrofit2在我的項目,我需要解析一些JSON回答到自定義對象創建CallAdapter。所以我創建解串器,並把它稱爲在GsonBuilder是否可以解析JSON沒有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(); 

所以問題是:是否有可能創建自己的反序列化器而不定義自己的CallAdapter?如果有可能,那麼我做錯了什麼?

+0

所以,如果你downvoted我的問題,請解釋原因 – darkchaos

回答

0

就像在this answer我需要使用RxJavaCallAdapterFactory提及。目前還不清楚我爲什麼,因爲我不使用RxJava,但它工作得很好