Android Retrofit 2.0自定义JSONObject Converter

如果在使用的过程中,不需要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数据)

时间: 2024-08-28 19:02:40

Android Retrofit 2.0自定义JSONObject Converter的相关文章

Retrofit 2 0 自定义Converter

requestBodyConverter 不执行的解决办法: 参数要使用@Body这种形式,否则 request 方法会不起作用. 在Retrofit中,无论是发送数据和接收数据,都是通过OKHttp的RequestBody和ResponseBody来实现的.在实际项目中,有时候原始的RequestBody或是ResponseBody并不能满足我们的需求(如接口加密),就需要对它进行转换. 在Retrofit通过build()方法获得实例时,可以添加多个ConverterFactory,但要注意

Retrofit 2.0:迄今为止最大的更新最好的Android HTTP客户端库

前言 来自移动支付公司square公司的作品,开源世界top5的最小公司,首先我自己是一个忠实广场粉,okhttp.picasso.greendao.okio等等~ 据Square CTO Bob Lee的说法,Square已经将超过60个项目提交到开源社区,贡献了25万行左右的代码. 原文:Retrofit 2.0: The biggest update yet on the best HTTP Client Library for Android 因为其简单与出色的性能,Retrofit 是

MIUI7,Android版本5.0.2,一个程序发送自定义广播,另一个程序没有接收到

对照<第一行代码——Android>进行学习,第五章中说到广播包的相关知识,前面获取广播等程序例程都可以跑的通,但是在5.3.2节中,程序A发送自定义广播,并接收自定义广播,同时程序B也接收该自定义广播.实际编写代码测试程序A发送之后只有程序A收到了改自定义广播,程序B并没有接收到,我认为是我工程配置的问题,因此下载了书本中的例程直接跑,现象任然是这样,程序A发送广播之后只有程序A可以收到,程序B没有收到. 不知道是什么原因,测试的手机是小米2s,系统MIUI7,Android版本5.0.2.

Android 5.0自定义动画

材料设计中的动画对用户的操作给予了反馈,并且在与应用交互时提供了持续的可见性.材料主题提供了一些按钮动画和活动过渡,Android 5.0允许你自定义动画并且可以创建新的动画: Touch Feedback Circular Reveal Activity Transitions Curved Motion View State Changes 自定义触摸反馈 在用户与UI元素交互时,从接触的角度来看,材料设计中的触摸反馈提供了瞬间的视觉确认.按钮的默认触摸动画使用了新的RippleDrawab

Android Retrofit框架解析

随着Google对HttpClient的摒弃,和Volley的逐渐没落,OkHttp开始异军突起,而Retrofit则对okHttp进行了强制依赖.Retrofit也是Square公司开发的一款针对Android网络请求的框架,其实质就是对okHttp的封装,使用面向接口的方式进行网络请求,利用动态生成的代理类封装了网络接口.retrofit非常适合于RESTful url格式的请求,更多使用注解的方式提供功能. 既然是RESTful架构,那么我们就来看一下什么是REST吧. REST(REpr

Android Retrofit实现原理分析

retrofit有几个关键的地方. 1.用户自定义的接口和接口方法.(由动态代理创建对象.) 2.converter转换器.(把response转换为一个具体的对象) 3.注解的使用. 让我们跟随Api来看吧. RestAdapter restAdapter = new RestAdapter.Builder().setEndpoint(API_URL).build(); build()其内部实现是这样的: [代码]java代码: ? 1 2 3 4 5 6 7 8 public RestAda

这是一份很详细的 Retrofit 2.0 使用教程(含实例讲解)(转)

前言 在Andrroid开发中,网络请求十分常用 而在Android网络请求库中,Retrofit是当下最热的一个网络请求库 今天,我将献上一份非常详细Retrofit v2.0的使用教程,希望你们会喜欢. 如果对Retrofit v2.0的源码感兴趣,可看文章:Android:手把手带你深入剖析 Retrofit 2.0 源码 目录 1. 简介 特别注意: 准确来说,Retrofit 是一个 RESTful 的 HTTP 网络请求框架的封装. 原因:网络请求的工作本质上是 OkHttp 完成,

Retrofit 2.0 使用详细教程

文章来自:https://blog.csdn.net/carson_ho/article/details/73732076 前言 在Andrroid开发中,网络请求十分常用 而在Android网络请求库中,Retrofit是当下最热的一个网络请求库 今天,我将献上一份非常详细Retrofit v2.0的使用教程,希望你们会喜欢. 如果对Retrofit v2.0的源码感兴趣,可看文章:Android:手把手带你深入剖析 Retrofit 2.0 源码 目录 1. 简介 特别注意: 准确来说,Re

Android Retrofit源码分析(一边用一边侃)

这几天空余时间总是想着写点什么,所以紧跟着之前android盒子模型FlexBoxLayout之后有写下了这篇Retrofit源码分析使用篇. 前言: Retrofit由于简单与出色的性能,使其安卓上最流行的HTTP Client库之一. Android Studio开发相关配置如下: compile "com.squareup.retrofit2:retrofit:2.0.2" compile "com.squareup.retrofit2:converter-gson:2