当前位置: 首页 > 工具软件 > parse-js > 使用案例 >

js JSON.parse()与 split("")效率对比

马弘和
2023-12-01

1. 最新需要考虑存储内容时以JSON字符串的形式还是以字符串特殊间隔的形式保存,首先来对比读取解析为json对象

测试代码如下:


    function ceshi() {
      console.log("json字符串parse效率测试");
	  var obj = {"taitoulx":"企业(或个人或事业单位)","fapiaott":"发票抬头","shuihao":"纳税识别号","kaihuyh":"开户银行","yinhangzh":"银行账户","qiyedz":"企业地址","qiyedh":"企业电话","default":"是否默认(true或false)"};
      var jsonstr = JSON.stringify(obj);
	  var spstr = "taitoulx:企业(或个人或事业单位);fapiaott:发票抬头;shuihao:纳税识别号;kaihuyh:开户银行;yinhangzh:银行账户;qiyedz:企业地址;qiyedh:企业电话;default:是否默认(true或false)";
	  var j1,j2,s1,s2;
	  //console.log(new Date());
		j1 = new Date();
      var m = 0;
	  var obj1= {};
      for (var i = 0; i < 150000; i++) {
        obj1=JSON.parse(jsonstr);
        m = m+ 1;
      }
      //console.log(new Date());
	  j2 = new Date();
      console.log("执行次数"+m);
	  console.log("执行用时:"+(j2.getTime()-j1.getTime()));
	  console.log(JSON.stringify(obj1));
      console.log("字符串分隔符转为json效率测试");
      //console.log(new Date());
	  s1 = new Date();
      var n = 0;
	  var obj = {};
      for (var i = 0; i < 150000; i++) {
        var arr = spstr.split(';');
		for(var j = 0;j<arr.length;j++){
			var objarr = arr[j].split(":");
			obj[objarr[0]]=objarr[1];
		}
        n = n+ 1;
      } 
      //console.log(new Date());
	  s2 = new Date();
      console.log("执行次数"+n);
	  console.log("执行用时:"+(s2.getTime()-s1.getTime()));
	  console.log(JSON.stringify(obj));
    }
    ceshi();

从目前的执行来看,split()+循环的方式,比直接JSON.parse()效率要快上一些,在一些序列化数据处理的时候,可以考虑直接使用特殊字符间隔的形式保存,读取解析时可以使用循环+split的方式再转为JSON,当然如果数据量不大的话,两种方式应该都可以.

2. 使用哪一种方式的话,根据自己的业务需要来选择,当然,如果会出现频繁生成而读取很少时,直接使用JSON的方式即可。

 类似资料: