文档章节

关于json的二次解析

l
 luckies
发布于 2016/03/01 13:59
字数 538
阅读 8
收藏 0

json字符串如下:

{"data":{"deparments":[{"selected":false,"value":"1","text":"123","group":null},{"selected":false,"value":"2","text":"456","group":null},{"selected":false,"value":"3","text":"心789","group":null},{"selected":false,"value":"4","text":"101","group":null},{"selected":false,"value":"5","text":"1234","group":null},{"selected":false,"value":"6","text":"12143","group":null},{"selected":false,"value":"7","text":"1243458","group":null},{"selected":false,"value":"8","text":"788890","group":null},{"selected":false,"value":"9","text":"456577","group":null},{"selected":false,"value":"10","text":"78799","group":null},{"selected":false,"value":"11","text":"456678","group":null},{"selected":false,"value":"12","text":"36578","group":null}],"userTitles":[{"selected":false,"value":"0","text":"798080","group":null},{"selected":false,"value":"1","text":"23456","group":null},{"selected":false,"value":"2","text":"6788","group":null},{"selected":false,"value":"3","text":"fd","group":null}]},"errorMsg":null,"status":"success"}

 解析的时候需要先解析外层数据然后解析内存数据,但因为程序中用到这种解析方法比较多,所以一般会先写一个BaseEntity类来解析基础类,但是data数据的类型又是不定的,刚开始data类型定的是Object,但是在使用的过程中有时候会出现解析错误,但是如果每次都写一个BaseEntity又会很麻烦,具体什么原因会在有时候错有时候不错,我还不是太清楚,有大神知道的可以告诉我一下。这里直接直接po代码

public class BaseEntity<T> {
 private String status ;
 private String errorMsg ; 
 private T data ;
 public String getStatus() {
  return status;
 }
 public void setStatus(String status) {
  this.status = status;
 }
 public String getErrorMsg() {
  return errorMsg;
 }
 public void setErrorMsg(String errorMsg) {
  this.errorMsg = errorMsg;
 }
 public T getData() {
  return data;
 }
 public void setData(T data) {
  this.data = data;
 }
 
}

开始解析:

OkHttpUtils.get().url(url).build()
    .execute(new StringCallback() {
     @Override
     public void onResponse(String response) {
      Gson gson = new Gson();
      BaseEntity<ListEntity> fromJson = gson.fromJson(response, new TypeToken<ListEntity>>(){}.getType());
      if (fromJson.getStatus().equals("success")) {
       DoctorTitleDepartmentEntity data = fromJson.getData();
       userTitle = data.getUserTitles();
       deparments = data.getDeparments();
      }
     }
     @Override
     public void onError(Request request, Exception e) {
      Log.e("wkk", "error:" + e.getMessage());
     }
    });

实体类:

public class InfoEntity {
 private String value;
 private String text;
 private String group;
 private String selected;
 public PersonInfoEntity(String value, String text, String group, String selected) {
  super();
  this.value = value;
  this.text = text;
  this.group = group;
  this.selected = selected;
 }
 public String getValue() {
  return value;
 }
 public void setValue(String value) {
  this.value = value;
 }
 public String getText() {
  return text;
 }
 public void setText(String text) {
  this.text = text;
 }
 public String getGroup() {
  return group;
 }
 public void setGroup(String group) {
  this.group = group;
 }
 public String getSelected() {
  return selected;
 }
 public void setSelected(String selected) {
  this.selected = selected;
 }
 
 
}
public class ListEntity implements Serializable {

 private List<InfoEntity> userTitles;
 private List<InfoEntity> deparments;
 public List<PersonInfoEntity> getUserTitles() {
  return userTitles;
 }
 public void setUserTitles(List<PersonInfoEntity> userTitles) {
  this.userTitles = userTitles;
 }
 public List<PersonInfoEntity> getDeparments() {
  return deparments;
 }
 public void setDeparments(List<PersonInfoEntity> deparments) {
  this.deparments = deparments;
 }
}

© 著作权归作者所有

共有 人打赏支持
l
粉丝 0
博文 1
码字总数 538
作品 0
郑州
Python 爬取高校历年分数线

最近一周一直在帮家里小弟看高考志愿,所以更新的没那么频繁了,请大家见谅。 在看各高校的往年分数时,忍不住手痒,想着能不能给它爬下来?哈哈,说干就干! 1 流程分析 之前无意中在这个网...

不正经程序员
07/16
0
0
Android中流行的第三方库资源收集

1、GSON GSON是将JSON解析成POJO的Java库。GSON也可以将POJO解析成JSON。 2、OkHttp OKHttp是Android版Http客户端。非常高效,支持SPDY、连接池、GZIP和 HTTP 缓存。默认情况下,OKHttp会自动...

jdroid
2014/05/02
0
0
C语言网络框架库--acl

acl 框架库是一个 C 库,主要包含:服务器开发框架、同步/异步网络通讯、常用数据结构、进程池/线程池、流式 xml/json 解析器、http/ping 应用协议等内容; acl 包括以下丰富的常用函数库: ...

郑树新
2012/06/03
21.4K
3
struct2json V1.0 发布,C 结构体与 JSON 互转库

struct2json 是一个开源的C结构体与 JSON 快速互转库,它可以快速实现 结构体对象 与 JSON 对象 之间序列化及反序列化要求。快速、简洁的 API 设计,大大降低直接使用 JSON 解析库来实现此类...

armink
2015/11/13
4.3K
8
使用Android API最佳实践

本文由 伯乐在线 - imesong 翻译自 meetme。欢迎加入Android小组。转载请参见文章末尾处的要求。 写在前面 现在,Android应用程序中集成第三方API已十分流行。应用程序都有自己的网络操作和缓...

mingxun
2014/04/17
0
0

没有更多内容

加载失败,请刷新页面

加载更多

day99-20180926-英语流利阅读-待学习

换汤不换药的美容大忽悠:从抗衰老到肌肤焕发新生 Lala 2018-09-26 1.今日导读 说到护肤品,一个个大牌广告就浮现在我们眼前:皮肤吹弹可破的女明星手捧功能各异的瓶瓶罐罐,暗示着消费者买买...

飞鱼说编程
32分钟前
3
0
FFmpeg Maintainer赵军:FFmpeg关键组件与硬件加速

大家好!我是赵军,现就职于英特尔的DCG从事基于FFmpeg的硬件优化工作,两年多前加入FFmpeg社区,2018年4月成为FFmpeg的其中的一个FFmpeg Maintainer,主要负责FFmpeg的硬件优化工作。 概览:...

yizhichao
今天
1
0
ehlib 修改 使行号字体颜色 与标题字体颜色 一致

对ehlib 显示效果不够满意,而做的调整 修改这个过程:procedure TCustomDBGridEh.DrawIndicatorCell(ACol, ARow: Longint; AreaCol, AreaRow: Longint; ARect: TRect; AState: TGri......

vga
今天
1
0
Bash重定向详解

Bash重定向详解 Bash的重定向指的是将命令的输入和输出导向不同地方,而不是默认的标准输入、标准输出和标准错误。Bash的重定向实际上是对标准输入、标准输出和标准错误的重置,进而将所需输...

小陶小陶
今天
3
0
EventBus原理深度解析

一、问题描述 在工作中,经常会遇见使用异步的方式来发送事件,或者触发另外一个动作:经常用到的框架是MQ(分布式方式通知)。如果是同一个jvm里面通知的话,就可以使用EventBus。由于Event...

yangjianzhou
今天
54
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部