JSON
JSON語法
簡單值
對象
{
"name" : "Lee",//使用雙引號,否則轉換會出錯
"age" : 100
}
數組
[100, "Lee", true]
[
{
"title" : "a",
"num" : 1
},
{
"title" : "b",
"num" : 2
},
{
"title" : "c",
"num" : 3
}
]
解析和序列化
stringify()
<script type="text/javascript">
var box = [{name : 'a', age : 1, height : 177},{name : 'b', age : 2, height : 188}];
var json = JSON.stringify(box, ['name'],0);//[{"name":"a"},{"name":"b"}]
console.log(json);
</script>
<script type="text/javascript">
var box = [{name : 'a', age : 1, height : 177},{name : 'b', age : 2, height : 188}];
var json = JSON.stringify(box, ['name'],4);
console.log(json);
</script>
函數不能刪除鍵值對,只能修改,並且不能返回null或者空字符串
<script type="text/javascript">
var box = [{name : 'a', age : 1, height : 177, toJSON : function () {
return this.name;
}},{name : 'b',age : 2, height : 188, toJSON : function () {
return this.name;
}}];
var json = JSON.stringify(box, function (key, value) {
switch (key) {
case 'name' :
return 'Mr. ' + value;
case 'age' :
return value + 'year';
default :
return value;
}
}, 4);
console.log(json);
</script>
如果對象裏已經有了toJSON函數,則第二個參數是無效的
parse()
<script type="text/javascript">
var box = '[{"name" : "a","age" : 1},{"name" : "b","age" : 2}]';
var json = JSON.parse(box, function (key, value) {
if (key == 'name') {
return 'Mr. ' + value;
} else {
return value;
}
});
console.log(json[0].name);
</script>