1. 程式人生 > 程式設計 >Json轉list二層解析轉換程式碼例項

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","enrollments": 56,"girlNumber": 1,"studentNumber": 56,{
        "boyNumber": 56,"classId": "209","className": "17建築工程技術03",{
        "boyNumber": 4,"classId": "237","className": "17學前教育08","deptName": "人文學院","enrollments": 67,"girlNumber": 63,"majorName": "學前教育","studentNumber": 67,"classId": "238","className": "17學前教育09",{
        "boyNumber": 5,"classId": "239","className": "17學前教育10","girlNumber": 62,"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;
  };

}

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支援我們。