温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

如何将Json转换为list二层解析

发布时间:2020-12-01 15:03:43 来源:亿速云 阅读:369 作者:Leah 栏目:开发技术

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

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI