本文重点讲解在Retrofit2.0中如何讲比较复杂的JSON对象转化为javaBean,而不过多介绍Retrofit2.0的用法,因为讲解Retrofit2.0的文章已经有很多人写了,也写的很详细,我作为一个初用Retrofit2.0的新手,便不班门弄斧了,写这篇文章的主要目的是因为自己在使用的过程中遇到了一些小问题在多方查找下得已解决,因为网上资料比较散,所以在此做个小小的总结。
如今的Android开发中,JSON应该是最主流的数据传输格式了,最简单的一个JSON形式就是这个样子的:
但理想是丰满的,实际工作中所遇到的JSON有时会比较复杂,下面看一个:
这个JSONObject中包含着第二层的JSONObject,第二层的JSONObject中又包含着JSONArray,那么对于这种JSON,我们该如何创建对应的javaBean呢。
对于最外层的JSON,我们可以创建一个类Base(名字瞎取得,不喜勿喷><!):
我们看到"data"这个key所包含的又是一个JSONObject,那么我们可以创建一个类叫Data:
其中List<BzList> beauties对应的就是"bzList"这个JSONArray,而BzList即JSONArray中的JSONObject,我们可以创建一个BzList类:
到此这个JSON的javaBean就创建好了。
写到这里发现标题写的Retrofit2.0,但是貌似内容与其关联不大。为了不让大家留下口舌,那就随便介绍下Retrofit2.0最基本的get请求吧。
首先贴上上述JSON的接口地址:
那么怎么通过使用Retrofit2.0去请求这个地址呢?
在Base类中我们定义了个WXTApi的接口,通过@GET注解标识为get请求,@GET中所填写的value和baseUrl组成完整的路径,接口中定了一个getFeed方法@Path为动态路径替换,会替换@GET中的{owner},@Query为动态查询参数,其值构成”?sessionId=ff0766abcc9888d618a629630a42cd07“部分。
接下来创建Retrofit2的实例,并设置BaseUrl,因为我们获取到的数据是json格式的,所以我们可以用Gson转换。
创建请求服务,并为网络请求方法设置参数
其中在getFeed方法中我们传入的参数与baseUrl就组成了我们完整的访问路径。
最后我们就可以对我们拿到的数据进行逻辑处理了
本文介绍了如何在Retrofit2.0中将复杂的JSON数据转换为对应的javaBean对象。首先创建Base类,包含一个Data属性,接着创建Data类,包括一个BzList类型的List及其它属性,再创建BzList类,存储JSON数组中的对象。最后,简单介绍了Retrofit2.0的基本GET请求操作,包括设置BaseUrl、创建Retrofit实例、构建网络请求并处理响应。
3223

被折叠的 条评论
为什么被折叠?



