json数组转化为字符串

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <base href="<%=basePath%>">
    
    <title>My JSP 'test6.jsp' starting page</title>
    
	<meta http-equiv="pragma" content="no-cache">
	<meta http-equiv="cache-control" content="no-cache">
	<meta http-equiv="expires" content="0">    
	<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
	<meta http-equiv="description" content="This is my page">
	<!--
	<link rel="stylesheet" type="text/css" href="styles.css">
	-->
<script type="text/javascript">


	var x
	var mycars = new Array()
	mycars[0] = "Saab"
	mycars[1] = "Volvo"
	mycars[2] = "BMW"
	
	for (x in mycars)
	{
		//alert(x);
		document.write(mycars[x] + "<br />")
	}


	var myJSON = [{name:'zehee',eat:function(){alert('eat');},run:{fast:true},help:{blueidea:{js:true}}},{xxx:"yyyy"}];
	
	alert(myJSON.length);
	
	
	var OString = function(O){
	  var S = [];
	  var x = 0;
	  for(var i in O){
		  x++;
		 // alert(O[i]);
		  
	    O[i] = typeof O[i] == 'string'?'"'+O[i]+'"':(typeof O[i] == 'object'?OString(O[i]):O[i]);
	    
	    /*
	     * 
	     *  if(typeof O[i] == 'String'){
	    	O[i] = '"'+O[i]+'"';
	    }else if(typeof O[i] == 'object'){
	    	O[i] = OString(O[i]);
	    }
	     */
	   
	    if(O.length == undefined)//json对象
	    S.push(i+':'+O[i]); 
	     else{//json数组
	    	 S.push(O[i]);
	     }
	  }
	  	//alert(x);
	  	if(O.length == undefined)
	    return '{'+S.join(',')+'}';
	    return '['+S.join(',')+']';
	}
	alert(OString(myJSON));
	
</script>
	
  </head>
  
  <body>
    This is my JSP page. <br>
  </body>
</html>


上面的可能考虑不太全面

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
/*
 *json对象转化为数组
 * 2014-8-20
*/
	String path = request.getContextPath();
	String basePath = request.getScheme() + "://"
			+ request.getServerName() + ":" + request.getServerPort()
			+ path + "/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
	<head>
		<base href="<%=basePath%>">

		<title>My JSP 'test7.jsp' starting page</title>

		<meta http-equiv="pragma" content="no-cache">
		<meta http-equiv="cache-control" content="no-cache">
		<meta http-equiv="expires" content="0">
		<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
		<meta http-equiv="description" content="This is my page">
		<!--
	<link rel="stylesheet" type="text/css" href="styles.css">
	-->
	<script type="text/javascript" src="<%=basePath %>/js/jquery-1.11.1.js"></script>
		<script type="text/javascript">
var x ={
	JSONstringify : function(Json) {
		if ( /msie/.test(navigator.userAgent.toLowerCase())) {
			if (!$.support.leadingWhitespace) {
				var result = x.toJSONString(Json);
			} else {
				var result = JSON.stringify(Json);
			}
		} else {
			var result = JSON.stringify(Json);
		}
		return result;
	},
	evalJSON : function(strJson) {
		return eval("(" + strJson + ")");
	},
	toJSONString : function(object) {
		var type = typeof object;
		if ('object' == type) {
			if (Array == object.constructor)
				type = 'array';
			else if (RegExp == object.constructor)
				type = 'regexp';
			else
				type = 'object';
		}
		switch (type) {
		case 'undefined':
		case 'unknown':
			return;
			break;
		case 'function':
		case 'boolean':
		case 'regexp':
			return object.toString();
			break;
		case 'number':
			return isFinite(object) ? object.toString() : 'null';
			break;
		case 'string':
			return '"' + object.replace(/(\\|\")/g, "\\$1").replace(
					/\n|\r|\t/g,
					function() {
						var a = arguments[0];
						return (a == '\n') ? '\\n' : (a == '\r') ? '\\r'
								: (a == '\t') ? '\\t' : ""
					}) + '"';
			break;
		case 'object':
			if (object === null)
				return 'null';
			var results = [];
			for ( var property in object) {
				var value = x.toJSONString(object[property]);
				if (value !== undefined)
					results.push(x.toJSONString(property) + ':' + value);
			}
			return '{' + results.join(',') + '}';
			break;
		case 'array':
			var results = [];
			for ( var i = 0; i < object.length; i++) {
				var value = x.toJSONString(object[i]);
				if (value !== undefined)
					results.push(value);
			}
			return '[' + results.join(',') + ']';
			break;
		}
	}
};
var json = [ {
	name : 'zhangsan',
	age : '24'
}, {
	name : 'lisi',
	age : '30'
}, {
	name : 'wangwu',
	age : '16'
}, {
	name : 'tianqi',
	age : '7'
} ];

var str = x.JSONstringify(json);
alert(str);
</script>
	</head>

	<body>
		This is my JSP page.
		<br>
	</body>
</html>


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值