是否可以在不在 Retrofit2 中创建 CallAdapter 的情况下解析 json
Is it possible to parse json without creating CallAdapter in Retrofit2
我在我的项目中使用了 retrofit2,我需要将一些 json 答案解析为自定义对象。所以我创建了反序列化器并在 GsonBuilder
中调用它
private final Gson _gson = new GsonBuilder()
.registerTypeAdapter(DaysList.class, new DaysDeserializer())
.create();
之后我定义了Retrofit
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 的情况下创建自己的反序列化器?如果可能那我做错了什么?
就像在中提到的一样,我需要使用 RxJavaCallAdapterFactory。我不清楚为什么,因为我不使用 RxJava,但它运行良好
我在我的项目中使用了 retrofit2,我需要将一些 json 答案解析为自定义对象。所以我创建了反序列化器并在 GsonBuilder
中调用它private final Gson _gson = new GsonBuilder()
.registerTypeAdapter(DaysList.class, new DaysDeserializer())
.create();
之后我定义了Retrofit
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 的情况下创建自己的反序列化器?如果可能那我做错了什么?
就像在