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-04
Netty中的DelimiterBasedFrameDecoder使用方法詳解
這篇文章主要介紹了Netty中的DelimiterBasedFrameDecoder使用方法詳解,DelimiterBasedFrameDecoder與LineBasedFrameDecoder類似,只不過(guò)更加通用,允許我們指定任意特殊字符作為分隔符,我們還可以同時(shí)指定多個(gè)分隔符,需要的朋友可以參考下2023-12-12
ocp開閉原則_動(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-02
Scala實(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

