json常见操作


s

json对象的构建

单双引号的使用

转意字符(如/在引号里要转意)

json对象转字符串形式JSON.stringify(o)

string对象转化为json对象,eval的用法(对象声明语句来说,仅仅是执行,并不能返回值)

JSON.stringify(), 将value(Object,Array,String,Number...)序列化为JSON字符串
JSON.parse(), 将JSON数据解析为js原生值


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="viewport" content="width=device-width,minimum-scale=1.0,maximum-scale=1.0" />

<script >
	function showPopup() {
		window.youyuan.showPopup('{"url":"http:\/\/wap.baidu.com","title":"xxxxxx","layout":{"width":"80%","height":"auto"}}');
	}

	function createJSONObj() {
		var user = {
			"url" : "http:\/\/wap.baidu.com",
			"title":"xxxxxx",
			"layout":{
				"width":"80%",
				"height":"auto"
			},
			"test_num" : 20,
			"test_arr" : [{
				"city" : "beijing",
				"postcode" : "222333"
			}, {
				"city" : "newyork",
				"postcode" : "555666"
			}]
		}
		return user;
	}
		
	function showJSON() {
		var user = createJSONObj();
		alert(user.url);
		alert(user.title);
		alert(user.layout.width);
		alert(user.test_arr[0].city);
		alert(user.test_arr[0].postcode);
	}
	
	function testforeach() {
		var json = {
			aa : true,
			bb : false
		};
		for (var item in json) {
			alert(item);
			//结果是 aa,bb, 类型是 string
			alert( typeof (item));
			alert(eval("json." + item));
			//结果是true,true类型是boolean
			eval(("json." + item + "=false;"));
			//改变json对象的值
		}
	}

	//json对象转字符串形式
	function json2str(o) {
		//也可以用JSON.stringify(o);
		//return JSON.stringify(o);
		var arr = [];
		var fmt = function(s) {
			if ( typeof s == 'object' && s != null)
				return json2str(s);
			return /^(string|number)$/.test( typeof s) ? "'" + s + "'" : s;
		}
		for (var i in o)
			arr.push("'" + i + "':" + fmt(o[i]));
		return '{' + arr.join(',') + '}';
	}

	//json对象转字符串形式
	function testjson2str() {
		//假如有两个变量,我要将a转换成字符串,将b转换成JSON对象:
		var a={"name":"tom","sex":"男","age":"24"};
		var b='{"name":"Mike","sex":"女","age":"29"}';
		var aToStr=JSON.stringify(a);
		var bToObj=JSON.parse(b);
		alert(typeof(aToStr));  //string
		alert(aToStr);  //string
		alert(typeof(bToObj));	//object
		alert(JSON.stringify(bToObj));	//object
	}

	//string对象转化为json对象
	function stringToJson(stringValue) {
		 假设后台发送的json数据为 '{a:2,b:1}' 存储于stringValue中
		//var theJsonValue = eval( '(' + stringValue + ')' );

		eval("var theJsonValue = " + stringValue);
		return theJsonValue;
	}

</script>

</head>
<body>
<a href="javascript:void(0)" οnclick="showPopup()">弹出页</a>
<a href="javascript:void(0)" οnclick="showJSON()">test</a>
<a href="javascript:void(0)" οnclick="testforeach()">testforeach</a>
<a href="javascript:void(0)" οnclick="testjson2str()">testjson2str</a>
</body>

</html>



eval()的使用(执行全局代码)

转自http://wanyij.blog.51cto.com/46570/43794

<script >

var s='function test(){return 1;}';   //一个函数定义语句
function demo2(){
  window.eval(s);//全局
  //eval(s);//局部
}
demo2();
alert(test());
</script>


s


s

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值