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;
  };

}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • JSON的String字符串与Java的List列表对象的相互转换

    在前端: 1.如果json是List对象转换的,可以直接遍历json,读取数据. 2.如果是需要把前端的List对象转换为json传到后台,param是ajax的参数,那么转换如下所示: var jsonStr = JSON.stringify(list); var param= {}; param.jsonStr=jsonStr; 在后台: 1.把String转换为List(str转换为list) List<T> list = new ArrayList<T>(); JSONAr

  • 将Java的List结构通过GSON库转换为JSON的方法示例

    发现了google的gson,因为之前对于protocolbuf有一些了解,带着一些好奇心,我开始使用了gson. GitHub主页:https://github.com/google/gson 经过比较,gson和其他现有java json类库最大的不同时gson需要序列化得实体类不需要使用annotation来标识需要序列化得字段,同时gson又可以通过使用annotation来灵活配置需要序列化的字段. 将List或者Map转换成json非常简单: public String getJso

  • Json数据转换list对象实现思路及代码

    JSON代码: 复制代码 代码如下: [{"cId":2,"cName":"\u767d\u841d\u535c","amount":26,"price":"17"},{"cId":3,"cName":"\u80e1\u841d\u535c","amount":21,"price":&qu

  • Java JSON转成List结构数据

    先要引入对应的jar,然后调用net.sf.json库的 ObjectMapper mapper = new ObjectMapper(); JavaType javaType = mapper.getTypeFactory().constructParametricType(List.class, ApprWritUnionFormModel.class); /*List<FormModel> writUnionFormList = JSON.parseArray(params, FormM

  • JSON--List集合转换成JSON对象详解

    1. 简单的手动放置 键值对 到JSONObject,然后在put到JSONArray对象里 List<Article> al = articleMng.find(f); System.out.println(al.size()); HttpServletResponse hsr = ServletActionContext.getResponse(); if(null == al){ return ; } for(Article a : al){ System.out.println(a.g

  • Json字符串与Object、List、Map的互转工具类

    package com.cq2022.zago.base.util; import java.io.FileReader; import java.io.FileWriter; import java.io.IOException; import java.io.StringWriter; import java.util.List; import java.util.Map; import org.codehaus.jackson.JsonFactory; import org.codehau

  • 将List对象列表转换成JSON格式的类实现方法

    JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式.易于人阅读和编写.同时也易于机器解析和生成.它基于JavaScript Programming Language, Standard ECMA-262 3rd Edition - December 1999的一个子集. JSON采用完全独立于语言的文本格式,但是也使用了类似于C语言家族的习惯(包括C, C++, C#, Java, JavaScript, Perl, Python等).这些特性使JSON

  • python使用zip将list转为json的方法

    zip()函数将可迭代对象作为参数,并打包成元组,返回的是一个个zip对象,可以使用list或dict转换返回结果,使用*zip可以将打包的对象分解成列表 >>> l=[1,2,3,4] >>> keys=['a','b','c','d'] >>> zip(keys,l) <zip object at 0x000001E0AFA327C8> >>> dict(zip(keys,l)) {'a': 1, 'b': 2, 'c

  • Json转list二层解析转换代码实例

    一层结构的数据: { "code": "0", "results": { "boyTotal": 0, "classNumber": 0, "enrollmentsTotal": 0, "girlTotal": 0, "mobile": "15969538305", "studentTotal": 0, &q

  • json字符串对象转换代码实例

    这篇文章主要介绍了json字符串对象转换代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 1.将字符串转为json对象:JSON.parse(); 2.json对象转字符串:JSON.stringify(); <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>创建json字符串对象</title

  • Javabean转换成json字符并首字母大写代码实例

    这篇文章主要介绍了javabean转成json字符并首字母大写代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 今天写接口的时候有个需求将接口返回的json字符串首字母大写:{"SN":"","Result":""}格式, 只需要在返回bean里面属性上加上@JsonProperty注解就可以了 import com.fasterxml.jackson.annotati

  • Java中io流解析及代码实例

    IO流 Java中IO流分为两种,字节流和字符流,顾名思义字节流就是按照字节来读取和写入的,字符刘是按照字符来存取的:常用的文件读取用的就是字符流,在网络通信里面用的就是字节流 下面这张图是Java中IO流的总体框架: 字节流 Java中字节流一般都是以stream结尾的,输入的字节流叫InputStream,输出字节流叫OutputStream;InputStream和OutputStream是表示自己输入/输出的所有类的超类,是抽象类(abstract) 常用的字节流有: 1.FileInp

  • springmvc视图解析流程代码实例

    这篇文章主要介绍了springmvc视图解析流程代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 在springmvc.xml配置文件中配置了将逻辑视图转换成物理视图: <!-- 配置视图解析器:如何把handler返回值解析为实际的物理视图 --> <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"&g

  • Spring自定义参数解析器代码实例

    这篇文章主要介绍了Spring自定义参数解析器代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 结合redis编写User自定义参数解析器UserArgumentResolver import javax.servlet.http.Cookie; import javax.servlet.http.HttpServletRequest; import org.springframework.beans.factory.annotation

  • Apache Calcite进行SQL解析(java代码实例)

    背景 当一个项目分了很多模块,很多个服务的时候,一些公共的配置就需要统一管理了,于是就有了元数据驱动! 简介 什么是Calcite?是一款开源SQL解析工具, 可以将各种SQL语句解析成抽象语法树AST(Abstract Syntax Tree), 之后通过操作AST就可以把SQL中所要表达的算法与关系体现在具体代码之中.Calcite能做啥? SQL 解析 SQL 校验 查询优化 SQL 生成器 数据连接 实例 今天主要是贴出一个java代码实例,实现了:解析SQL语句中的表名上代码:SQL语

  • js实现json数据行到列的转换的实例代码

    月份 郑州-电量 新乡-电量 安阳-电量201201 33 29 23201202 35 26 25201203 34 27 24201204 36 28 26201205 34.3 28.8 24.3这样,Ext的图表就能把它显示成三个序列了.我写了如下的函数实现这个功能: 复制代码 代码如下: function CovertData(jsonData,idField, fromField, toField){ var result = [], curRecord =null, num; va

  • C++ xxx_cast实现转换代码实例解析

    1.1 static_cast static_cast可以在一个方向上实现隐式转换,在另一个方向上实现静态转换.其适用于单隐和双隐两种情况. 双隐 双隐即两边都可以直接进行隐式转换,适用于一般类型的数据转换(如int, float, double, long等数据类型之间的转换) 单隐 单隐即只能在一个方向上进行隐式转换,在另一个方向上只能实现静态转换.(如void* 和指针之间的转换,任意类型的指针可以转换为void*,但是void*不能转换为任意类型的指针,因此将void*转换为任意类型的指

  • Java中IO流解析及代码实例详解

    目录 1.IO流 1.流和流的分类 什么是IO流? IO流的分类? java.io包下需要掌握的流有16个: 2.如何使用流 1.输入流(读文件):FileInputStream 2.输出流(写文件):FileOutputStream 3.文件的拷贝 总结 1.IO流 1.流和流的分类 什么是IO流? I:Input (输入) O: Ouput(输出) IO流的分类? 有多种分类方式: 一种方式是按照流的方向进行分类: 以内存作为参照物 往内存中去,叫做输入(Input).或者叫做读(Read)

随机推荐