Json轉(zhuǎn)list二層解析轉(zhuǎn)換代碼實(shí)例
一層結(jié)構(gòu)的數(shù)據(jù):
{ "code": "0", "results": { "boyTotal": 0, "classNumber": 0, "enrollmentsTotal": 0, "girlTotal": 0, "mobile": "15969538305", "studentTotal": 0, "userCode": "141920370", "userName": "杜文兵", "userType": "1" } }
二層結(jié)構(gòu)的數(shù)據(jù):
{ "code": "0", "results": { "arrayList": [ { "boyNumber": 61, "classId": "159", "className": "17建筑工程技術(shù)01", "deptName": "建筑工程學(xué)院", "enrollments": 61, "girlNumber": 0, "majorName": "建筑工程技術(shù)", "studentNumber": 61, "year": "2017" }, { "boyNumber": 55, "classId": "208", "className": "17建筑工程技術(shù)02", "deptName": "建筑工程學(xué)院", "enrollments": 56, "girlNumber": 1, "majorName": "建筑工程技術(shù)", "studentNumber": 56, "year": "2017" }, { "boyNumber": 56, "classId": "209", "className": "17建筑工程技術(shù)03", "deptName": "建筑工程學(xué)院", "enrollments": 56, "girlNumber": 0, "majorName": "建筑工程技術(shù)", "studentNumber": 56, "year": "2017" }, { "boyNumber": 4, "classId": "237", "className": "17學(xué)前教育08", "deptName": "人文學(xué)院", "enrollments": 67, "girlNumber": 63, "majorName": "學(xué)前教育", "studentNumber": 67, "year": "2017" }, { "boyNumber": 4, "classId": "238", "className": "17學(xué)前教育09", "deptName": "人文學(xué)院", "enrollments": 67, "girlNumber": 63, "majorName": "學(xué)前教育", "studentNumber": 67, "year": "2017" }, { "boyNumber": 5, "classId": "239", "className": "17學(xué)前教育10", "deptName": "人文學(xué)院", "enrollments": 67, "girlNumber": 62, "majorName": "學(xué)前教育", "studentNumber": 67, "year": "2017" } ], "boyTotal": 185, "classNumber": 6, "enrollmentsTotal": 374, "girlTotal": 189, "studentTotal": 374, "userCode": "131530220" } }
先上代碼:
JSONObject obj1 = new JSONObject(); obj1.put("mobile", "13008662173"); //查詢員工編號(hào) 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); //通過(guò)員工編號(hào)查詢班級(jí)數(shù) 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轉(zhuǎn)對(duì)象 * * @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());//參數(shù)1為要轉(zhuǎn)換的JSONArray數(shù)據(jù),參數(shù)2為要轉(zhuǎn)換的目標(biāo)數(shù)據(jù),即List盛裝的數(shù)據(jù) return list2; } }
對(duì)象:
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; /** * 聯(lián)系電話 */ private String mobile; private String studentTotal; /** * 用戶賬號(hào) */ private String userCode; /** * userName */ private String userName; /** * 用戶類型(userType):1-員工,2-學(xué)生 */ 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; }; }
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- Java JSON轉(zhuǎn)成List結(jié)構(gòu)數(shù)據(jù)
- python使用zip將list轉(zhuǎn)為json的方法
- Json字符串與Object、List、Map的互轉(zhuǎn)工具類
- JSON--List集合轉(zhuǎn)換成JSON對(duì)象詳解
- 將List對(duì)象列表轉(zhuǎn)換成JSON格式的類實(shí)現(xiàn)方法
- 將Java的List結(jié)構(gòu)通過(guò)GSON庫(kù)轉(zhuǎn)換為JSON的方法示例
- JSON的String字符串與Java的List列表對(duì)象的相互轉(zhuǎn)換
- Json數(shù)據(jù)轉(zhuǎn)換list對(duì)象實(shí)現(xiàn)思路及代碼
相關(guān)文章
在Spring環(huán)境中正確關(guān)閉線程池的姿勢(shì)
這篇文章主要介紹了在Spring環(huán)境中正確關(guān)閉線程池的姿勢(shì),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-04-04Netty中的DelimiterBasedFrameDecoder使用方法詳解
這篇文章主要介紹了Netty中的DelimiterBasedFrameDecoder使用方法詳解,DelimiterBasedFrameDecoder與LineBasedFrameDecoder類似,只不過(guò)更加通用,允許我們指定任意特殊字符作為分隔符,我們還可以同時(shí)指定多個(gè)分隔符,需要的朋友可以參考下2023-12-12ocp開閉原則_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理
這篇文章主要為大家詳細(xì)介紹了ocp開閉原則的相關(guān)資料,ocp開閉原則指導(dǎo)我們?nèi)绾谓⒁粋€(gè)穩(wěn)定的、靈活的系統(tǒng),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-08-08區(qū)塊鏈常用數(shù)據(jù)庫(kù)leveldb用java來(lái)實(shí)現(xiàn)常規(guī)操作的方法
這篇文章主要介紹了區(qū)塊鏈常用數(shù)據(jù)庫(kù)leveldb用java來(lái)實(shí)現(xiàn)常規(guī)操作,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-02-02Scala實(shí)現(xiàn)冒泡排序、歸并排序和快速排序的示例代碼
這篇文章主要介紹了Scala實(shí)現(xiàn)冒泡排序、歸并排序和快速排序的示例代碼,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2019-06-06使用XSD校驗(yàn)Mybatis的SqlMapper配置文件的方法(1)
這篇文章以前面對(duì)SqlSessionFactoryBean的重構(gòu)為基礎(chǔ),簡(jiǎn)單的介紹了相關(guān)操作知識(shí),然后在給大家分享使用XSD校驗(yàn)Mybatis的SqlMapper配置文件的方法,感興趣的朋友參考下吧2016-11-11深入解析Java中的編碼轉(zhuǎn)換以及編碼和解碼操作
這篇文章主要介紹了Java中的編碼轉(zhuǎn)換以及編碼和解碼操作,文中詳細(xì)解讀了編碼解碼的相關(guān)IO操作以及內(nèi)存使用方面的知識(shí),需要的朋友可以參考下2016-02-02