这篇文章给大家介绍如何将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二层解析就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。