2016-04-27 74 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,但它工作得很好