Json轉(zhuǎn)list二層解析轉(zhuǎn)換代碼實例
更新時間:2020年12月01日 10:18:00 作者:手撕高達的村長
這篇文章主要介紹了Json轉(zhuǎn)list二層解析轉(zhuǎn)換代碼實例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
一層結(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": "建筑工程學院",
"enrollments": 61,
"girlNumber": 0,
"majorName": "建筑工程技術(shù)",
"studentNumber": 61,
"year": "2017"
},
{
"boyNumber": 55,
"classId": "208",
"className": "17建筑工程技術(shù)02",
"deptName": "建筑工程學院",
"enrollments": 56,
"girlNumber": 1,
"majorName": "建筑工程技術(shù)",
"studentNumber": 56,
"year": "2017"
},
{
"boyNumber": 56,
"classId": "209",
"className": "17建筑工程技術(shù)03",
"deptName": "建筑工程學院",
"enrollments": 56,
"girlNumber": 0,
"majorName": "建筑工程技術(shù)",
"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);
//通過員工編號查詢班級數(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)對象
*
* @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)換的目標數(shù)據(jù),即List盛裝的數(shù)據(jù)
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;
/**
* 聯(lián)系電話
*/
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;
};
}
以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
您可能感興趣的文章:
- 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對象詳解
- 將List對象列表轉(zhuǎn)換成JSON格式的類實現(xiàn)方法
- 將Java的List結(jié)構(gòu)通過GSON庫轉(zhuǎn)換為JSON的方法示例
- JSON的String字符串與Java的List列表對象的相互轉(zhuǎn)換
- Json數(shù)據(jù)轉(zhuǎn)換list對象實現(xiàn)思路及代碼
相關(guān)文章
SpringCloud通過Feign傳遞List類型參數(shù)方式
這篇文章主要介紹了SpringCloud通過Feign傳遞List類型參數(shù)方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-03-03
Java前后端分離的在線點餐系統(tǒng)實現(xiàn)詳解
這是一個基于SpringBoot+Vue框架開發(fā)的在線點餐系統(tǒng)。首先,這是一個前后端分離的項目。具有一個在線點餐系統(tǒng)該有的所有功能,感興趣的朋友快來看看吧2022-01-01
Java加密解密工具(適用于JavaSE/JavaEE/Android)
這篇文章主要介紹了Java加密解密工具,適用于JavaSE/JavaEE/Android,感興趣的小伙伴們可以參考一下2016-04-04
SpringBoot使用Sharding-JDBC實現(xiàn)數(shù)據(jù)分片和讀寫分離的方法
本文主要介紹了SpringBoot使用Sharding-JDBC實現(xiàn)數(shù)據(jù)分片和讀寫分離,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2021-10-10
SpringBoot使用工具類實現(xiàn)獲取容器中的Bean
這篇文章主要為大家詳細介紹了SpringBoot如何使用工具類實現(xiàn)獲取容器中的Bean,文中的示例代碼講解詳細,感興趣的小伙伴可以跟隨小編一起學習一下2024-03-03

