Android Retrofit2数据解析代码解析

在弄数据解析这块,浪费了很长的时间,最开始一直觉得传过来用对象接收的,类型是json,往那个方式去想了。搞了很久。

后来看了别人写的才发觉,真是很简单,感谢 https://www.jianshu.com/p/d0081e8a7edc 给我启发。

加入的jar包

// Retrofit库
implementation 'com.squareup.retrofit2:retrofit:2.0.2'
implementation 'com.squareup.retrofit2:converter-gson:2.0.2'

服务端传过来的数据:

{
"code":0,
"resultMsg":"OJBK",
"resultState":"SUCCESS",
"resultObj":[
{"id":null,"nickname":"科科","head_img":null,},
{"id":null,"nickname":"科科","head_img":null,},
{"id":null,"nickname":"科科","head_img":null,},
{"id":null,"nickname":"科科","head_img":null,},
{"id":null,"nickname":"李逵","head_img":"",}]}

创建一个WebResponse对象,来接收数据:

package controller.hzl.com.hzl1.model;

import java.util.List;

import controller.hzl.com.hzl1.entity.HNOTICELOG_E;

public class WebRespone {

  /**
   * 返回状态码
   */
  private Integer code;

  /**
   * 返回消息
   */
  private Object resultMsg;

  /**
   * 返回结果
   */
  private String resultState;

  /**
   * 返回数据对象
   */
  private List<HNOTICELOG_E> resultObj;

  public Integer getCode() {
    return code;
  }

  public Object getResultMsg() {
    return resultMsg;
  }

  public String getResultState() {
    return resultState;
  }

  public void setCode(Integer code) {
    this.code = code;
  }

  public void setResultMsg(Object resultMsg) {
    this.resultMsg = resultMsg;
  }

  public void setResultState(String resultState) {
    this.resultState = resultState;
  }

  public List<HNOTICELOG_E> getResultObj() {
    return resultObj;
  }

  public void setResultObj(List<HNOTICELOG_E> resultObj) {
    this.resultObj = resultObj;
  }
}

注意,这个对象里面有一个是list类型。

public class HNOTICELOG_E {
  private Long id;
  private String nickname;
  private String head_img;
  private String noticeContext;
  private String relUserId;
  private String relNoticeUserId;
  private Date createTime;
  private String createUser;
  private Date updateTime;
  private String updateUser;
  private Integer status;
  public Long getId() {
    return id;
  }

  public void setId(Long id) {
    this.id = id;
  }

  public String getNoticeContext() {
    return noticeContext;
  }

  public void setNoticeContext(String noticeContext) {
    this.noticeContext = noticeContext == null ? null : noticeContext.trim();
  }

  public String getRelUserId() {
    return relUserId;
  }

  public void setRelUserId(String relUserId) {
    this.relUserId = relUserId == null ? null : relUserId.trim();
  }

  public String getRelNoticeUserId() {
    return relNoticeUserId;
  }

  public void setRelNoticeUserId(String relNoticeUserId) {
    this.relNoticeUserId = relNoticeUserId == null ? null : relNoticeUserId.trim();
  }

  public Date getCreateTime() {
    return createTime;
  }

  public void setCreateTime(Date createTime) {
    this.createTime = createTime;
  }

  public String getCreateUser() {
    return createUser;
  }

  public void setCreateUser(String createUser) {
    this.createUser = createUser == null ? null : createUser.trim();
  }

  public Date getUpdateTime() {
    return updateTime;
  }

  public void setUpdateTime(Date updateTime) {
    this.updateTime = updateTime;
  }

  public String getUpdateUser() {
    return updateUser;
  }

  public void setUpdateUser(String updateUser) {
    this.updateUser = updateUser == null ? null : updateUser.trim();
  }

  public Integer getStatus() {
    return status;
  }

  public void setStatus(Integer status) {
    this.status = status;
  }

  public String getNickname() {
    return nickname;
  }

  public void setNickname(String nickname) {
    this.nickname = nickname;
  }

  public String getHead_img() {
    return head_img;
  }

  public void setHead_img(String head_img) {
    this.head_img = head_img;
  }
}

相当于是resultObj 下面的直接是一个List。这样,就直接能够接收到服务端传的json里面的List对象。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • Android Retrofit框架的使用

    Retrofit介绍 Retrofit是Square开源的一款基于OkHttp(也是他家的)封装的网络请求框架,主要的网络请求还是OkHttp来完成,Retrofit只是对OkHttp进行了封装,可以让我们更加简单方便的使用,目前大部分公司都在使用这款框架,Retrofit的原理也是面试必问的问题之一了,所以我们不仅要会使用,也要对其实现原理有一个大概的了解. 本片文章从使用角度来说,不对的地方希望大家在评论区交流,我会及时改进,共同进步,文章中的demo可以从github下载. Retrofi

  • 基于Retrofit2+RxJava2实现Android App自动更新

    本文实例为大家分享了Retrofit2 RxJava2实现Android App自动更新,具体内容如下 功能解析 自动更新可以说已经是App的标配了,很多第三方平台也都支持这个功能,最近手头上的项目需要加入这个App自动更新,考虑到项目里有用到Retrofit2和RxJava2,于是打算使用它俩自己实现这个功能. 分析App自动更新,可以分为以下三个功能点: 1.APK文件的下载 2.下载进度的实时更新显示 3.下载完成后的自动安装 其中比较难的一点是下载进度的实时更新显示,更难的是如何优雅的进

  • Android 封装Okhttp+Retrofit+RxJava,外加拦截器实例

    1.创建一个接口,用来定义接口使用的 public interface Api { @POST("product/getProductDetail") Observable<Goods_Bean> getGoods(@QueryMap Map<String,String> map); @POST("product/addCart") Observable<Add_Bean> getAdd(@QueryMap Map<Stri

  • Android中Retrofit的简要介绍

    Retrofit A type-safe HTTP client for Android and Java 适用于Java和Android的安全的HTTP客户端 Retrofit是一个可用于Android和Java的网络库,使用它可以简化我们的网络操作,提高效率和正确率.它将请求过程和底层代码封装起来只暴露我们业务中的请求和返回数据模型. public interface GitHubService { @GET("users/{user}/repos") Call<List&l

  • Android Retrofit 2.0框架上传图片解决方案

    本文为大家分享了 Android Retrofit 2.0框架上传图片解决方案,具体内容如下 1.单张图片的上传 /** * 上传一张图片 * @param description * @param imgs * @return */ @Multipart @POST("/upload") Call<String> uploadImage(@Part("fileName") String description, @Part("file\&qu

  • Android retrofit上传文件实例(包含头像)

    上传文件主要就是通过接口 1.AndroidMainfest.xml中加入权限 <uses-permission android:name="android.permission.INTERNET"/> <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/> <uses-permission android:name="android

  • Android Retrofit 中文乱码问题的解决办法

    Android Retrofit 中文乱码问题的解决办法 使用retrofit和rxjava,提交数据时需注意,当数据中有中文时,传到后台,可能会是乱码,需处理: 解决: 1.GET请求改成POST; 2.参数Field改成Query 3.加上@FormUrlEncoded 如下: @FormUrlEncoded @POST("/test/test") Call<Response> register(@Field("name") String name)

  • 简略分析Android的Retrofit应用开发框架源码

    面对一个项目,对于Android应用开发框架的选择,我想过三种方案: 1.使用Loader + HttpClient + GreenDao + Gson + Fragment,优点是可定制性强,由于使用Google家自己的Loader和LoaderManager,代码健壮性强. 缺点是整套代码学习成本较高,使用过程中样板代码较多,(比如每一个Request都需要产生一个新类) 2.Volley,作为Google在IO大会上得瑟过的一个网络库,其实不算什么新东西(2013 IO发布),使用较为简单

  • Retrofit和OkHttp如何实现Android网络缓存

    前提: 没做过网络缓存这方面的功能,所以想学习下.上网看了很多的文章,也看了部分视频.想把自己的一些小小的心德分享一下.如何能够稍微帮助到别人,那对我来说就算是有意义了.废话不多说了.进入正题. 1.网路请求 网络请求用的是Retrofit.用过的人,都知道优点.没用过的人就照着图示或者Demo去写就好了,而且网上的文章一大堆,本人就不赘述了. 网络请求的写法 2.添加缓存 重点来了,在网上看了许多的缓存方法.到最后还是选择了,OkHttp添加拦截器的这种方法.貌似用这种方法的人最多. 先来两张

  • Android网络请求框架Retrofit详解

    介绍: Retrofit 是Square公司开发的一款针对Android网络请求的框架,Retrofit2底层基于OkHttp实现的,OkHttp现在已经得到Google官方认可,大量的app都采用OkHttp做网络请求.本文使用Retrofit2.0.0版本进行实例演示. 使用Retrofit可以进行GET,POST,PUT,DELETE等请求方式. 同步请求:需要在子线程中完成,会阻塞主线程. Response response = call.execute().body(); 异步请求:请

  • Android app开发中Retrofit框架的初步上手使用

    Retrofit 2.0 先来说一下Retrofit 2.0版本中一些引人注意的地方. 在Retrofit 2.0中,最大的改动莫过于减小库的体积,首先,Retrofit 2.0去掉了对所有的HTTP客户端的兼容,而钟情于OkHttpClient一个,极大地减少了各种适配代码,原因一会儿说;其次,拆库,比如将对RxJava的支持设置为可选(需要额外引入库):再比如将各个序列化反序列化转换器支持设置为可选(需要额外引入库).于2.0抛弃HttpClient和HttpURLConnection,为了

  • Android Retrofit2网路编程实现方法详解

    Android里面本身有OKHttp,不过不是很好用,这里就用Retrofit2,简单好用. 首先,需要加入网络权限: <uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/> <uses-permission andro

  • Android中Retrofit 2.0直接使用JSON进行数据交互

    之前使用Retrofit都是将JSON串转化为POJO对象,针对不同的业务协议,定义相应的接口和参数列表.但是此种方式一般用在自己内部协议基础上,具体大的项目中,有些第三方的集成功能,一般都采用统一的方式即请求JSON和回应JSON进行数据交互,不可能每个第三方协议都会去定义与协议相应的POJO对象. HTTP肯定有GET和POST方法,先定义Retrofit Api的interface: package com.hdnetworklib.network.http; import java.ut

  • Android使用 Retrofit 2.X 上传多文件和多表单示例

    retrofit post请求上传表单和文件最重要的就是就是去构建RequestBody,今天为大家带来一种超级简单的上传方式 Body方式: 1.Retrofit接口RetrofitInterface @POST(URLConstant.URL_PATH) Flowable<UploadImgBean> upload(@Body RequestBody Body); 2.Retrofit的配置 private static RetrofitInterface getRetrofitInter

随机推荐