文档章节

关于json的二次解析

l
 luckies
发布于 2016/03/01 13:59
字数 538
阅读 8
收藏 0
点赞 1
评论 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
郑州
Android中流行的第三方库资源收集

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

jdroid ⋅ 2014/05/02 ⋅ 0

C语言网络框架库--acl

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

郑树新 ⋅ 2012/06/03 ⋅ 3

struct2json V1.0 发布,C 结构体与 JSON 互转库

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

armink ⋅ 2015/11/13 ⋅ 8

使用Android API最佳实践

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

mingxun ⋅ 2014/04/17 ⋅ 0

armink/struct2json

C结构体与 JSON 快速互转库 struct2json struct2json 是一个开源的C结构体与 JSON 快速互转库,它可以快速实现 结构体对象 与 JSON 对象 之间序列化及反序列化要求。快速、简洁的 API 设计,...

armink ⋅ 2015/11/15 ⋅ 0

C 结构体与 JSON 互转库--struct2json

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

armink ⋅ 2015/11/13 ⋅ 1

AndNet 0.1.2 发布,Android 网络框架

AndNet 0.1.2 发布了,该版本主要改进内容包括: 修复post使用bean时空数据带来的问题 put, delete请求的支持 post json数据的支持 修复RequestParams空指针问题 AndNet是一个Android开中中二...

亓斌哥哥 ⋅ 2016/03/14 ⋅ 7

acl redis C++ 库被 redis 官方收录

acl 库中的新增模块 redis C++ 客户端库被 redis 官方正式收录,参见 http://redis.io/clients 中的 C++ 部分,其中 “redis-client for C++” 库即为 acl redis C++ 客户端库。acl 中的 re...

郑树新 ⋅ 2015/03/09 ⋅ 10

Android二次封装的网络框架--AndNet

AndNet AndNet是一个Android开中中二次封装的网络框架,可以任意轻松切换使用的底层网络请求框架,AndNet使用Parser-Callback模式,可以轻松实现从网络请求到数据解析的整个操作步骤。 AndN...

亓斌哥哥 ⋅ 2016/02/25 ⋅ 0

R语言爬虫系列6|动态数据抓取范例

感谢关注天善智能,走好数据之路↑↑↑ 欢迎关注天善智能,我们是专注于商业智能BI,人工智能AI,大数据分析与挖掘领域的垂直社区,学习,问答、求职一站式搞定! 本文作者:天善智能社区专家...

天善智能 ⋅ 2017/11/27 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

聊聊spring cloud gateway的LoadBalancerClientFilter

序 本文主要研究一下spring cloud gateway的LoadBalancerClientFilter GatewayLoadBalancerClientAutoConfiguration spring-cloud-gateway-core-2.0.0.RELEASE-sources.jar!/org/springfram......

go4it ⋅ 25分钟前 ⋅ 0

详解:Nginx反代实现Kibana登录认证功能

Kibana 5.5 版后,已不支持认证功能,也就是说,直接打开页面就能管理,想想都不安全,不过官方提供了 X-Pack 认证,但有时间限制。毕竟X-Pack是商业版。 下面我将操作如何使用Nginx反向代理...

问题终结者 ⋅ 31分钟前 ⋅ 0

002、nginx配置虚拟主机

一、nginx配置虚拟主机可分为三种方式,分别为: 1、基于域名的虚拟主机,通过域名来区分虚拟主机——应用:外部网站 2、基于端口的虚拟主机,通过端口来区分虚拟主机——应用:公司内部网站...

北岩 ⋅ 35分钟前 ⋅ 0

shell脚本之死循环写法

最近在学习写shell脚本,在练习if while等流程控制时,突然它们的死循环写法是怎么样的?经过百度与亲测记录如下: for死循环 #! /bin/bashfor ((;;));do date sleep 1d...

hensemlee ⋅ 37分钟前 ⋅ 0

苹果的ARKit2.0有多可怕,看了就知道

序言 ARKit主要由三部分组成: 跟踪(Tracking) 跟踪是ARKit的核心组件之一,其提供了设备在物理世界中的位置与方向信息,并对物体进行跟踪,如人脸。 2.场景理解(Scene Understanding) 场...

_小迷糊 ⋅ 38分钟前 ⋅ 0

5.1 vim介绍 5.2 vim移动光标 5.3 ,5.4vim一般模式下移动光标,复制粘贴

vim命令 vim是vi的一个升级版;vim可以显示文字的颜色 安装vim这一个包vim-enhanced 如果不知道安装包,可以使用 命令下面命令来查看vim命令是那个包安装的。 [root@linux-128 ~]# yum prov...

Linux_老吴 ⋅ 41分钟前 ⋅ 0

vim一般模式

vim 是什么 vim是什么 ? 在之前接触Linux,编辑网卡配置文件的时候我们用过了vi ,vim简单说就是vi的升级版,它跟vi一样是Linux系统中的一个文本编辑工具。 如果系统中没有vim ,需要安装一...

李超小牛子 ⋅ 49分钟前 ⋅ 0

docker实战

构建企业级Docker虚拟化平台实战 重点剖析虚拟化和云计算概念; 分析Docker虚拟化的概念和原理; 从0开始实战Docker虚拟化平台; 基于Docker构建Nginx WEB服务器和CentOS虚拟机; 基于开源监...

寰宇01 ⋅ 59分钟前 ⋅ 0

vim介绍、vim颜色显示和移动光标、vim一般模式下移动光标、一般模式下复制粘贴剪切

VIM Vim 是 UNIX 文本编辑器 Vi 的加强版本,加入了更多特性来帮助编辑源代码。Vim 的部分增强功能包括文件比较(vimdiff),语法高亮,全面的帮助系统,本地脚本(Vimscript),和便于选择的...

蛋黄Yolks ⋅ 今天 ⋅ 0

springboot+mockito测试controller层遇到的问题

使用MockitoJUnitRunner测试的一个例子,原来报错无法找到bean, 类似的异常如下:createBeanError..... 原因:是因为@Runwith使用了SpringRunner,应该修改为MockitoJUnitRunner 代码如下: ...

writeademo ⋅ 今天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部