使用Gson解析Retrofit返回结果
来源:互联网 发布:贩卖淘宝店铺犯法吗? 编辑:程序博客网 时间:2024/05/16 17:47
Retrofit和RxJava系列博客:
使用Retrofit上传文件
使用Gson解析Retrofit返回结果
Retrofit和RxJava结合使用
使用Retrofit和RxJava进行轮询操作
由于Retrofit默认返回的结果是ResponseBody
类型,而我们实际中常常返回的是json格式字符串,此时就需要对返回结果进行解析。Retrofit也提供了灵活的json解析方式。得益于Converter
的存在, Retrofit 在入参和返回类型上表现得非常灵活,只要我们修改一下ResponseBodyConverter
就可以自由地修改返回数据的类型,使用适当的解析方法。如果需要使用gson解析字符串怎么办呢?自己手工写一个当然可以,但是Retrofit提供了更加方便的实现,我们只需要使用converter-gson
这个库即可。
添加依赖
在build.gradle中加入依赖,此时不仅仅需要Retrofit的依赖,还需要加入gson和converter-gson两个依赖,这里的converter-gson就是我们需要的gson解析库。
compile 'com.squareup.retrofit2:retrofit:2.1.0'compile 'com.google.code.gson:gson:2.7'compile 'com.squareup.retrofit2:converter-gson:2.1.0'
定义gson类
熟悉gson使用的童鞋应该知道,gson使用的时候需要定义一个类,这个类里面的字段与json字符串里面的键一一对应。我们根据实际情况定义这个类。比如我这里需要接受3个字段,分别为message
、flag
、addDate
。
public class UploadJsonResult { String message; String flag; String addDate; public String getFlag() { return flag; } public String getMessage() { return message; } public String getAddDate() { return addDate; }}
添加converter-gson
为了解析ResponseBody
中返回的json字符串,首先需要修改请求接口中的返回值类型,将通用的ResponseBody
改成这里的json类UploadJsonResult
。
public interface RetrofitImageUploadService { @Multipart @POST("EntranceGuardes/app/appOpen_pushdDataToApp.action") Call<UploadJsonResult> upload(@Part("userId") RequestBody description, @Part MultipartBody.Part file); }
然后只需要在创建Retrofit
对象时加入addConverterFactory(GsonConverterFactory.create())
即可,这样就可以将默认的ResponseBody
类型返回值使用gson进行解析,最终得到的响应结果就是UploadJsonResult
类型的对象。
Retrofit retrofit = new Retrofit.Builder() .baseUrl("http://172.18.81.155:8080/") .addConverterFactory(GsonConverterFactory.create()) .build();
经过上面的操作,从服务器返回的字符串已经解析成了我们需要的UploadJsonResult
对象。现在只需要调用enqueue
方法就可以进行异步请求了。
代码地址
https://github.com/flyingzhao/RxJavaPolling/blob/master/app/src/main/java/com/optimais/pollingtest/UpLoadImage.java
- 使用Gson解析Retrofit返回结果
- Retrofit 解析GSON
- Retrofit中使用GSON解析定制格式的JSON
- Retrofit的GET请求使用,结合Gson解析
- 使用gson配合Retrofit2解析服务器返回
- 初次使用Retrofit和Gson
- Retrofit初体验,复杂数据gson解析
- Retrofit Gson解析空字符串的问题
- Retrofit Gson解析空字符串的问题
- 【框架】网络请求+Gson解析--Retrofit 2
- android 使用retrofit和okhttp3总结(附gson和json的解析)
- Retrofit返回结果成功与失败相反
- 在安卓上使用RxJava Retrofit OKHttp GSON
- Retrofit使用与解析
- 使用Gson解析Json
- 使用Gson解析json
- 使用Gson解析json
- google-gson使用解析
- WEB后台传数据给前台
- iOS 多线程编程<四、GCD线程间通信>
- Spark中的错误处理
- php时间格式
- 折线图
- 使用Gson解析Retrofit返回结果
- 两个字符串的最大公共子字符串
- Python.Pip - Python包管理工具
- 功能强大的Android日志程序:logger
- Linux的页面回收与反向映射机制
- CDN基础知识
- 【转】DGMGRL管理Data Guard
- CentOS 6.5 yum 安装 JDK
- JavaScript 从标准对象开始--20160930