Json转list,二层解析转换
一层结构的数据:
{
"code": "0",
"results": {
"boyTotal": 0,
"classNumber": 0,
"enrollmentsTotal": 0,
"girlTotal": 0,
"mobile": "15969538305",
"studentTotal": 0,
"userCode": "141920370",
"userName": "杜文兵",
"userType": "1"
}
}
二层结构的数据:
{
"code": "0",
"results": {
"arrayList": [
{
"boyNumber": 61,
"classId": "159",
"className": "17建筑工程技术01",
"deptName": "建筑工程学院",
"enrollments": 61,
"girlNumber": 0,
"majorName": "建筑工程技术",
"studentNumber": 61,
"year": "2017"
},
{
"boyNumber": 55,
"classId": "208",
"className": "17建筑工程技术02",
"deptName": "建筑工程学院",
"enrollments": 56,
"girlNumber": 1,
"majorName": "建筑工程技术",
"studentNumber": 56,
"year": "2017"
},
{
"boyNumber": 56,
"classId": "209",
"className": "17建筑工程技术03",
"deptName": "建筑工程学院",
"enrollments": 56,
"girlNumber": 0,
"majorName": "建筑工程技术",
"studentNumber": 56,
"year": "2017"
},
{
"boyNumber": 4,
"classId": "237",
"className": "17学前教育08",
"deptName": "人文学院",
"enrollments": 67,
"girlNumber": 63,
"majorName": "学前教育",
"studentNumber": 67,
"year": "2017"
},
{
"boyNumber": 4,
"classId": "238",
"className": "17学前教育09",
"deptName": "人文学院",
"enrollments": 67,
"girlNumber": 63,
"majorName": "学前教育",
"studentNumber": 67,
"year": "2017"
},
{
"boyNumber": 5,
"classId": "239",
"className": "17学前教育10",
"deptName": "人文学院",
"enrollments": 67,
"girlNumber": 62,
"majorName": "学前教育",
"studentNumber": 67,
"year": "2017"
}
],
"boyTotal": 185,
"classNumber": 6,
"enrollmentsTotal": 374,
"girlTotal": 189,
"studentTotal": 374,
"userCode": "131530220"
}
}
先上代码:
JSONObject obj1 = new JSONObject();
obj1.put("mobile", "13008662173");
//查询员工编号 JSONObject userInfo = ToolsWebReq.sendPost(ToolsWebReq.TEACHER_SERVER_BASE_URL + ToolsWebReq.API_QUERYUSERID,obj1); List<UserInfo> userInfos = (List<UserInfo>) JsonUtils.JsonToList(userInfo.get("results"), new UserInfo()); String userCode = "";
if(userInfos != null ){
for (int i = 0; i < userInfos.size(); i++) {
UserInfo user = userInfos.get(i);
userCode = user.getUserCode();
} }
System.out.println("userCode="+userCode); //通过员工编号查询班级数
List<ClassTeacherE> list2 = null; JSONObject obj = new JSONObject();
obj.put("userCode", "131530220"); JSONObject classList = ToolsWebReq.sendPost(ToolsWebReq.TEACHER_SERVER_BASE_URL + ToolsWebReq.API_QUERYCLASSNUM,obj);
//解析第一层
JSONObject rs = (JSONObject) classList.get("results");
//解析第二层
JSONArray arrayList = (JSONArray) rs.get("arrayList"); List<UserClassInfo> classLists = (List<UserClassInfo>) JsonUtils.JsonToList(rs.get("arrayList"), new UserClassInfo()); System.out.println("classLists.get(0).getClassName()="+classLists.get(0).getClassName());
方法:
package com.xy.common.util; import java.util.List; import net.sf.json.JSONArray;
import net.sf.json.JsonConfig; public class JsonUtils { /**
* json转对象
*
* @param input
* @return
*/
public static List<?> JsonToList(Object object,Object classModel) { JSONArray array = JSONArray.fromObject(object); List<?> list2 = net.sf.json.JSONArray.toList(array,classModel, new JsonConfig());//参数1为要转换的JSONArray数据,参数2为要转换的目标数据,即List盛装的数据 return list2;
}
}
对象:
package com.xy.web.entity; import java.util.Date;
import javax.persistence.*; public class UserInfo { private String boyTotal; private String classNumber; private String enrollmentsTotal; private String girlTotal; /**
* 联系电话
*/
private String mobile; private String studentTotal; /**
* 用户账号
*/
private String userCode; /**
* userName
*/
private String userName; /**
* 用户类型(userType):1-员工,2-学生
*/
private String userType; public String getBoyTotal() {
return boyTotal;
} public void setBoyTotal(String boyTotal) {
this.boyTotal = boyTotal;
} public String getClassNumber() {
return classNumber;
} public void setClassNumber(String classNumber) {
this.classNumber = classNumber;
} public String getEnrollmentsTotal() {
return enrollmentsTotal;
} public void setEnrollmentsTotal(String enrollmentsTotal) {
this.enrollmentsTotal = enrollmentsTotal;
} public String getGirlTotal() {
return girlTotal;
} public void setGirlTotal(String girlTotal) {
this.girlTotal = girlTotal;
} public String getMobile() {
return mobile;
} public void setMobile(String mobile) {
this.mobile = mobile;
} public String getStudentTotal() {
return studentTotal;
} public void setStudentTotal(String studentTotal) {
this.studentTotal = studentTotal;
} public String getUserCode() {
return userCode;
} public void setUserCode(String userCode) {
this.userCode = userCode;
} public String getUserName() {
return userName;
} public void setUserName(String userName) {
this.userName = userName;
} public String getUserType() {
return userType;
} public void setUserType(String userType) {
this.userType = userType;
}; }
Json转list,二层解析转换的更多相关文章
- Java中json的构造和解析
什么是 Json? JSON(JvaScript Object Notation)(官网网站:http://www.json.org/)是 一种轻量级的数据交换格式. 易于人阅读和编写.同时也易于机 ...
- 《项目经验》--通过js获取前台数据向一般处理程序传递Json数据,并解析Json数据,将前台传来的Json数据写入数据库表中
先看一下我要实现的功能界面: 这个界面的功能在图中已有展现,课程分配(教师教授哪门课程)在之前的页面中已做好.这个页面主要实现的是授课,即给老师教授的课程分配学生.此页面实现功能的步骤已在页面 ...
- 通过js获取前台数据向一般处理程序传递Json数据,并解析Json数据,将前台传来的Json数据写入数据库表中
摘自:http://blog.csdn.net/mazhaojuan/article/details/8592015 通过js获取前台数据向一般处理程序传递Json数据,并解析Json数据,将前台传来 ...
- iOS开发——网络Swift篇&JSON与XML数据解析
JSON与XML数据解析 JSON数据解析(内置NSJSONSerialization与第三方JSONKit) 一,使用自带的NSJSONSerialization 苹果从IOS5.0后推出了SD ...
- 玩转iOS开发 - JSON 和 Xml 数据解析
前言 Json 和xml是网络开发中经常使用的数据格式,JSON轻量级.xml相对较复杂.所以如今用JSON的比例很大.基本上从server获取的返回数据都是JSON格式的,作为iOS开发人员,解析J ...
- 关于json和字符串之间的转换
在最近的工作中,使用到JSON进行数据的传递,特别是从前端传递到后台,前台可以直接采用ajax的data函数,按json格式传递,后台Request即可,但有的时候,需要传递多个参数,后台使用requ ...
- java中json数据生成和解析(复杂对象演示)
1.json简单介绍 1.1 json是最流行和广泛通用的数据传输格式,简称JavaScript Object Notation,最早在JavaScript中使用. 1.2 举个例子,下面是一个jso ...
- Spring MVC 后端获取前端提交的json格式字符串并直接转换成control方法对应的参数对象
场景: 在web应用开发中,spring mvc凭借出现的性能和良好的可扩展性,导致使用日渐增多,成为事实标准,在日常的开发过程中,有一个很常见的场景:即前端通过ajax提交方式,提交参数为一个jso ...
- Java基础97 json插件的使用(java对象和json字符串对象之间的转换)
1.需要用到的包 2.实例 实体类 people package com.shore.entity; /** * @author DSHORE/2019-4-19 * */ public class ...
随机推荐
- 【MySQL】MySQL的常规操作
MySQL的常规知识 标准的SQL语句通常可分为如下的几种类型: 1,DCL(Database Control Language) :数据控制语言,主要由grant和revoke关键字组成. 2.DD ...
- PWA 入门: 写个非常简单的 PWA 页面
Progressive Web Apps 是 Google 提出的用前沿的 Web 技术为网页提供 App 般使用体验的一系列方案. 这篇文章里我们来完成一个非常简单的 PWA 页面. 一个 PWA ...
- 通过Stetho在Chrome上调试Android App
引 入依赖包 compile 'com.facebook.stetho:stetho:1.3.1' 初始化一下 public class MyApplication extends Applicati ...
- golang学习笔记 ---TCMalloc
图解 TCMalloc 前言 TCMalloc 是 Google 开发的内存分配器,在不少项目中都有使用,例如在 Golang 中就使用了类似的算法进行内存分配.它具有现代化内存分配器的基本特征:对抗 ...
- Chrome浏览器如何不让它缓存?
chrome对js和图片的缓存,导致调试的程序不是最新的,有时F5刷新了都没用. 此时应: Ctrl+F5 或 Shift+F5 重新载入当前网页,忽略缓存的内容.
- SharePoint 2013混合模式登陆中 使用 自定义登陆页
接前一篇博客<SharePoint 2013自定义Providers在基于表单的身份验证(Forms-Based-Authentication)中的应用>,当实现混合模式登陆后,接着我们就 ...
- 源码安装mysql 5.7.19数据库
1.系统要求yum install -y cmake make gcc gcc-c++ bison ncurses ncurses-devel 2.创建用户和组groupadd mysql & ...
- HTML5应用程序缓存实现离线Web网页或应用
HTML5应用程序缓存和浏览器缓存的区别.(有些)浏览器会主动保存自己的缓存文件以加快网站加载速度.但是要实现浏览器缓存必须要满足一个前提,那就是网络必须要保持连接.如果网络没有连接,即使浏览器启用了 ...
- Python 文件 write() 方法
概述 Python 文件 write() 方法用于向文件中写入指定字符串. 在文件关闭前或缓冲区刷新前,字符串内容存储在缓冲区中,这时你在文件中是看不到写入的内容的. 语法 write() 方法语法如 ...
- CentOS扩展库配置
背景:经常用到第三方的库,通过yum命令查询不到.例如:yum search ilbcWarning: No matches found for: ilbc 不要感叹,CentOS没你想象的支持力度那 ...