`

将大数据量json数组转化为List输出的三种方式

    博客分类:
  • Java
 
阅读更多
import java.io.StringReader;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.alibaba.fastjson.JSONReader;

public class TestJson {

	public static void main(String[] args) {
		//创建10万条测试数据
		JSONArray jsonArray = new JSONArray();
		for(int i=0;i<100000;i++){
			JSONObject jsonObject = new JSONObject();
			Map<String, Object> map = new HashMap<String, Object>();
			map.put("MERCHCODE", "MERCHCODE"+i);
			map.put("DEVCODE", "DEVCODE"+i);
			map.put("TRANSTIME", "TRANSTIME"+i);
			map.put("TRANSAMT",  100+i);
			map.put("TRANSTYPE", "TRANSTYPE"+i);
			map.put("TRANSSTATUS", "TRANSSTATUS"+i);
			jsonObject.putAll(map);
			jsonArray.add(i, jsonObject);
		}
		//获取开始时间
		long startTime=System.currentTimeMillis();   
		
		//返回List
		List<Map<String, Object>> rsList = new ArrayList<Map<String, Object>>();
		/*第一种:将每个json数组元素转化为json对象,遍历添加到List中
		 * 程序运行时间: 4079ms总数:100000
		 * 程序运行时间: 400ms 总数:100
		 * 程序运行时间: 460ms总数:20
		 * 
		JSONArray array=JSON.parseArray(jsonArray.toJSONString());
		for (int i = 0; i < array.size(); i++) {
            JSONObject object2 = array.getJSONObject(i);//json数组对象
            Map<String, Object> map2 = new HashMap<String, Object>();
           for (Object k : object2.keySet()) {
                Object v = object2.get(k);
                map2.put(k.toString(), v);
           }
           rsList.add(map2);
      }*/
      
      
		/* 第二种:对象化,对返回字段进行转义,可自定义返回字段及类型   
		 * 程序运行时间: 4729ms 总数:100000
		 * 程序运行时间: 697ms 总数:100
		 * 程序运行时间: 605ms总数:20
		 * 
		List<HisDataReturnDto> datas=JSON.parseArray(jsonArray.toJSONString(), HisDataReturnDto.class);
		if(null != datas && datas.size() != 0){
			for(HisDataReturnDto data:datas){
				Map<String,Object> map = new HashMap<String,Object>();
				map.put("merchName", data.getMERCHNAME());
				map.put("merchCode", data.getMERCHCODE());
				map.put("devCode", data.getDEVCODE());
				map.put("transTime",data.getTRANSTIME());
				map.put("transAmt", data.getTRANSAMT());
				map.put("transType", data.getTRANSTYPE());
				map.put("transStatus",data.getTRANSSTATUS());
				rsList.add(map);
			}
		}*/
		
		/*第三种:读取流方式,数据量较大时很有优势
		 * 程序运行时间: 2602ms  总数:100000
		 * 程序运行时间: 447ms 总数:100
		 * 程序运行时间: 486ms总数:20
		 */
	    JSONReader reader = new JSONReader(new StringReader(jsonArray.toJSONString()));
	    reader.startArray();
	    Map<String, Object> map = new HashMap<String, Object>();
	    while (reader.hasNext()) {
		    reader.startObject();
		    while (reader.hasNext()) {
			    String arrayListItemKey = reader.readString();
			    String arrayListItemValue = reader.readObject();
			    map.put(arrayListItemKey, arrayListItemValue);
		    }
		    rsList.add(map);
		    reader.endObject();
	    }
	    reader.endArray();
	    reader.close();
	    //获取结束时间
	    long endTime=System.currentTimeMillis();
	    System.out.println("程序运行时间: "+(endTime-startTime)+"ms");
	    System.out.println("总数:"+rsList.size());
	}
//说明:程序运行时间受系统限制,仅供参考;
}




import java.io.Serializable;

public class HisDataReturnDto implements Serializable {

    private static final long serialVersionUID = 7812345985709979623L;
    //****************************请求参数开始*************************
    /*
	 * 翻页方向
	 */
    private String MERCHNAME;
    /*
	 * 是否需要总记录数
	 */
    private String MERCHCODE;
    /*
	 * 机具终端编
	 */
    private String DEVCODE;
    /*
	 * 交易时间开始
	 */
    private String TRANSTIME;
    /*
	 * 交易时间结束
	 */
    private Double TRANSAMT;
    
    private String TRANSTYPE;
    /*
	 * 是否需要总记录数
	 */
    private String TRANSSTATUS;
	public String getMERCHNAME() {
		return MERCHNAME;
	}
	public void setMERCHNAME(String mERCHNAME) {
		MERCHNAME = mERCHNAME;
	}
	public String getMERCHCODE() {
		return MERCHCODE;
	}
	public void setMERCHCODE(String mERCHCODE) {
		MERCHCODE = mERCHCODE;
	}
	public String getDEVCODE() {
		return DEVCODE;
	}
	public void setDEVCODE(String dEVCODE) {
		DEVCODE = dEVCODE;
	}
	public String getTRANSTIME() {
		return TRANSTIME;
	}
	public void setTRANSTIME(String tRANSTIME) {
		TRANSTIME = tRANSTIME;
	}
	public Double getTRANSAMT() {
		return TRANSAMT;
	}
	public void setTRANSAMT(Double tRANSAMT) {
		TRANSAMT = tRANSAMT;
	}
	public String getTRANSTYPE() {
		return TRANSTYPE;
	}
	public void setTRANSTYPE(String tRANSTYPE) {
		TRANSTYPE = tRANSTYPE;
	}
	public String getTRANSSTATUS() {
		return TRANSSTATUS;
	}
	public void setTRANSSTATUS(String tRANSSTATUS) {
		TRANSSTATUS = tRANSSTATUS;
	}
    
  //****************************请求参数结束*************************

 

分享到:
评论

相关推荐

    json数组转化为list-Python入门进阶教程-JSON操作.pdf

    JSON,全称JavaScript Object Notation,是一种轻量级的数据交换格式,被广泛应用于网络通信和数据存储。它的设计目标是让数据易于人阅读和编写,同时也方便机器解析和生成。JSON支持两种基本数据结构:键值对(key-...

    java实现二维数组转json的方法示例

    这是通过创建一个`StringBuffer`对象`sb`,然后遍历二维数组,将每个子数组转换为JSON对象格式,最后组合成一个JSON数组。以下是代码详解: 1. 首先定义了一个二维字符串数组`blogList`,包含了多条博客信息。 2. ...

    ResultSet转化为json,json转化为List

    ResultSet是数据库查询结果的载体,JSON是一种轻量级的数据交换格式,而List是Java集合框架中的动态数组。本文将详细介绍如何在Java中将ResultSet转换为JSON,以及如何将JSON转换为List。 首先,我们来探讨如何将...

    javascript读取json数组生成滚动分页

    在本场景中,我们将关注如何使用JavaScript从JSON数组中读取数据并生成滚动分页效果。滚动分页是一种用户滚动到页面底部时自动加载更多数据的技术,常见于社交网络和新闻网站。 首先,我们需要理解JSON(JavaScript...

    Unity3D中任意类型数据转换成json数据的方法2

    在Unity3D开发中,JSON(JavaScript Object Notation)是一种常用的数据交换格式,因其轻量级、易读易写的特点,常用于存储和传输数据。本文将深入探讨如何在Unity3D中将任意类型的数据转换成JSON格式。 首先,我们...

    json字符串转化为list泛型

    在Java编程中,我们经常需要将JSON格式的数据转换为Java对象,这通常涉及到将JSON字符串转化为List泛型。JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和...

    这里是一个json数据解析json对象数组的示例程序

    JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,被广泛用于Web应用程序之间传递数据。它基于JavaScript的一个子集,格式简洁且易于读写,同时也易于机器解析和生成。在本示例程序中,我们将深入...

    json与list转化

    JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成。它基于JavaScript的一个子集,但不是JavaScript的一部分。JSON与Java中的对象和数据结构有良好的对应...

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

    JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成。JSON作为数据交换格式,因其简洁、清晰的特点,在Web应用中得到了广泛的应用。而List集合是一种常见...

    多层集合嵌套的JSON数据转化为Java对象(src.zip)

    Java作为一种常用的后端开发语言,需要处理这些JSON数据,将其转化为Java对象以便于操作。本主题主要关注如何使用`net.sf.json.JSONObject`这个库将多层集合嵌套的JSON数据转换为Java对象。 `...

    ssh将list自定义转化为json

    这段代码会将`list`中的每个`Person`对象转换为JSON格式的字符串,然后把整个列表用JSON数组包裹起来。转化后的`jsonString`可能是这样的: ```json [{"name":"张三","age":30},{"name":"李四","age":25}] ``` ...

    List转化为json的jar包

    Gson库提供了一个`Gson`对象,可以直接将List转换为JSON字符串,无需手动创建JSON数组: ```java import com.google.gson.Gson; public class GsonConverter { public static String listToJson(List&lt;?&gt; list) { ...

    json数据前后台解析;json与对象、数组、集合之间转换源码

    JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,被广泛用于前后端数据传输。它的语法简单,易于人类阅读和编写,同时也容易让机器解析和生成。在本主题中,我们将深入探讨JSON数据的前后台解析过程...

    json 转化工具类

    JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,被广泛用于前后端数据传输。在Java编程中,我们经常需要将JSON字符串转化为Java对象,或者将Java对象转化为JSON字符串,这时就需要用到JSON转化工具...

    Android list转json工具类

    在将List转换为JSON时,我们通常会将每个列表元素转换为一个JSON对象,然后将这些对象放入一个JSON数组中。 要创建这样一个工具类,我们可以使用Android提供的Gson库。Gson是Google开发的一个用于在Java对象和JSON...

    excel转化为json的js脚本

    4. 转换为JSON:使用`XLSX.utils.sheet_to_json`函数将工作表转化为JSON对象数组: ```javascript const sheet_name_list = Object.keys(workbook.Sheets); const data = XLSX.utils.sheet_to_json(workbook....

    JAVA对象转化为JSON

    在Java开发中,将Java对象转化为JSON(JavaScript Object Notation)格式是常见的需求,尤其是在Web服务和前后端数据交互中。JSON是一种轻量级的数据交换格式,它易于人阅读和编写,同时也易于机器解析和生成。JSON...

    List对象列表 转换Json

    在IT领域,尤其是在Web开发与数据处理中,将List对象列表转换为JSON格式是一种常见的需求。这不仅便于数据在网络间的传输,还利于前端解析展示。本文将深入解析如何实现这一转换,包括理解List对象、JSON的基本概念...

    Java读取json文件,并转化为map取值

    JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成。本教程将深入讲解如何使用Java读取JSON文件,并将其内容转化为Map以便进行取值操作。 首先,我们...

    IOS 将字典和数组转化为JSON数据

    在iOS开发中,JSON(JavaScript Object Notation)是一种广泛使用的轻量级数据交换格式,它允许程序员以易于读写的方式存储和传输数据。JSON格式基于JavaScript语法,但它是独立于语言的,拥有明确的规范定义。在iOS...

Global site tag (gtag.js) - Google Analytics