<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>JSON</title>
<script type="text/javascript">
// var str='function show(){alert(123)};' //因为function在字符串里,所以不能有空格
// eval(str); //eval() 函数可计算某个字符串,并执行其中的的 JavaScript 代码eval(string),将字符串转化为JS
// show();
// var str='function show(){alert(123)}';
// JSON.parse(str);//报错,function show(){alert(123)}不是json格式
// show();
// var str='{"name":"hello"}';//必须严格json形式,属性和值的双引号(不能是单引号)必须加
// var json=JSON.parse(str);
// alert(typeof(json.name));//string
// var json='{name:"hello"}';
// var str=JSON.stringify(json);
// alert(str);//"{name:\"hello\"}",结果会自动加上引号
// var a={name:"hello"};//此句后面不能加分号,会报错Unexpected token;
// var b=a;
// b.name="hi";
// alert(a.name);//hi,原理对象引用
// var a={name:"hello"};
// var b={};
// for(var attr in a){
// b[attr]=a[attr];
// }
// b.name='hi';
// alert(a.name); //hello
// 新方法 parse()和stringity()的应用:深度克隆新的对象
// var a={name:"hello"};
// var str=JSON.stringify(a);
// var b=JSON.parse(str);
// b.name="hi";
// alert(a.name);//hello
// var a={name:{age:100}};
// var str=JSON.stringify(a);
// var b=JSON.parse(str);
// b.name.age="hi";
// alert(a.name.age);//100
</script>
</head>
<body>
</body>
</html>
<!--
JSON的方法:
eval():能解析任何字符串变成json
parse():只能解析json形式的字符串变成json,安全性高一些
stringify():json转换为字符串,解析的时候会自动加上引号
-->