HTML5之JSON新方法 parse()和stringify()
阿新 • • 發佈:2019-02-15
<!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轉換為字串,解析的時候會自動加上引號
-->