JavaScript Object Notation 是一種用于數(shù)據(jù)交換的文本格式
格式
- 復(fù)合類型的值只能是數(shù)組或?qū)ο?,不能是函?shù)、正則表達(dá)式對(duì)象、日期對(duì)象。
- 簡(jiǎn)單類型的值只有四種:字符串、數(shù)值(必須以十進(jìn)制表示)、布爾值和null(不能使用NaN, Infinity, -Infinity和undefined)。
- 字符串必須使用雙引號(hào)表示,不能使用單引號(hào)。
- 對(duì)象的鍵名必須放在雙引號(hào)里面。
- 數(shù)組或?qū)ο笞詈笠粋€(gè)成員的后面,不能加逗號(hào)。
注意
空數(shù)組和空對(duì)象都是合格的 JSON 值,null本身也是一個(gè)合格的 JSON 值。
方法
JSON.stringify()
用于將一個(gè)值轉(zhuǎn)為字符串,并且可以被JSON.parse方法還原。
JSON.stringify('abc')//""abc""
//雙引號(hào)可以讓 JavaScript 引擎知道,foo是一個(gè)字符串,而不是一個(gè)變量名
JSON.stringify(1)//"1"
JSON.stringify([])//"[]"
JSON.stringify({})//"{}"
JSON.stringify([1,2,'hello'])//"[1,2,"hello"]"
JSON.stringify(name : 'zhang')//"{"name":"zhang"}"
比較
JSON.stringify('abc') === "abc"http://false
JSON.stringify('abc') === "\"abc\""http://true
- 對(duì)象中,有成員的值是undefined、函數(shù)等,這個(gè)成員會(huì)被JSON.stringify()過(guò)濾。
- 數(shù)組中,成員是undefined、函數(shù)等,則這些值被轉(zhuǎn)成null。正則對(duì)象會(huì)被轉(zhuǎn)成空對(duì)象。
JSON.parse()
用于將JSON字符串轉(zhuǎn)化成對(duì)象。
JSON.parse('"abc"');//"abc"
JSON.parse('true');//true
JSON.parse('{}');//{}
JSON.parse('[1,2,"hello"]');//[1, 2, "hello"]