Android(安卓)Retrofit 2.0自定义JSONObject Converter
16lz
2021-01-25
如果在使用的过程中,不需要Gson以及其他转换器,只是单纯的返回 JSONObject,那这样怎么处理呢?
通过阅读源码发现,可以通过自定义转换器的方式操作:
import retrofit.Call/*Retrofit 2.0*/public interfase ApiService{ @POST("/list") Call<JSONObject> loadRepo();}
同步操作:
Call<JSONObject> call = service.loadRepo();Repo repo = call.excute()
异步操作:
Call<JSONObject> call = service.loadRepo();call.enqueue(new Callback<JSONObject>(){ @Override public void onResponse(Response<JSONObject> response){ //从response.body()中获取结果 } @Override public void onFailure(Throwable t){ }});
这样就完了么?不。
- 添加自定义Converter
地址:https://github.com/brokge/Retrofit2.0-JSONCoverter
选择相应版本添加到项目中。(Retrofit 2.0 -beta2和Retrofit 2.0-beta4 处理方式不同)
- GsonConverterFactory.create(gson)换成 JsonConverterFactory.create()
完整代码如下:
private static Retrofit initRetrofit() { OkHttpClient httpClient = new OkHttpClient(); if (BuildConfig.DEBUG) { HttpLoggingInterceptor logging = new HttpLoggingInterceptor(); logging.setLevel(HttpLoggingInterceptor.Level.BODY); httpClient = new OkHttpClient.Builder().addInterceptor(logging).build(); } return new Retrofit.Builder() .baseUrl(BaseUtil.getApiUrl()) .addConverterFactory(JsonConverterFactory.create()) .client(httpClient) .build(); }
或许下面文章你也感兴趣:
Android Retrofit 请求字符串(非JSON数据)
更多相关文章
- GitHub 标星 2.5K+!教你通过玩游戏的方式学习 VIM!
- Android(安卓)MVVM之Room学习记录,从零开始实现
- Android(安卓)SNTP 时间同步
- Android项目打包遇com.android.builder.internal.aapt.v2.Aapt2E
- binder机制底层驱动浅析
- Android(安卓)IPV6获取方式
- Android(安卓)Studio操作/问题积累
- Android虚拟机,控制台Console报错几例及解决办法
- Android(安卓)Activity之间数据的传递