用js将二维数组转为json格式字符串

<!doctype html>
<html lang="en">
<head>
	<meta charset="utf-8">
	<title>json</title>
	
	<script src="jquery-1.11.1.js"></script>
	
	<script>
	$(function(){
		/*******遍历二维数组*********/	
		//定义数组
		var arr=new Array();
		arr =[[1,2],[1,2],[1,2],[1,2]];  //初始化二维数组
		var i,j;
		for(i=0;i<arr.length;i++){
			var arr_l=new Array();//获取二维数组中的一维数组
			arr_1=arr[i];
			//遍历一维数组
			for(j=0;j<arr_1.length;j++){
				//alert(arr_1[j]); // arr_1:表示一位数组中的值
				document.write(arr_1[j]);
			}			
		}
		document.write("<br>");
				
		var array = [[10, 100, 1000], [1000, 100, 10]];
		
		// encodeArray2D方法
		var jsonStr = encodeArray2D(array);
		//alert(jsonstr);
		document.write(jsonStr);
		document.write("<br>");
		
		// arrayToJson方法
		var jsonStr2 = arrayToJson(array);
		document.write(jsonStr2);
		
	});
	
	/**
	* 将二维数组转为 json 字符串
	*/
	function encodeArray2D(obj) {
		var array = [];
		for (var i = 0; i < obj.length; i++) {
			array[i] = '[' + obj[i].join(',') + ']';
		}
		return '[' + array.join(',') + ']';
	}
	
	/**
	* 将二维数组转为 json 字符串
	*/
	function arrayToJson(o) {     
		var r = [];     
		if (typeof o == "string") return "\"" + o.replace(/([\'\"\\])/g, "\\$1").replace(/(\n)/g, "\\n").replace(/(\r)/g, "\\r").replace(/(\t)/g, "\\t") + "\"";     
		if (typeof o == "object") {     
			if (!o.sort) {     
				for (var i in o)     
				r.push(i + ":" + arrayToJson(o[i]));     
				if (!!document.all && !/^\n?function\s*toString\s*\{\n?\s*\[native code\]\n?\s*\}\n?\s*$/.test(o.toString)) {     
				r.push("toString:" + o.toString.toString());     
				}     
				r = "{" + r.join() + "}";     
			} else {     
				for (var i = 0; i < o.length; i++) {     
				r.push(arrayToJson(o[i]));     
				}     
				r = "[" + r.join() + "]";     
			}     
			return r;     
		}     
		return o.toString();     
    }    
	
	
</script>
</head>
<body>

</body>
</html>

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值