JSON = JavaScript Object Notation,即JS 對象標記。是一種輕量級的數(shù)據(jù)交換格式。JSON 是 JS 對象的字符串表示法,它使用文本表示一個 JS 對象的信息,本質(zhì)是一個字符串,比如:
var obj = {a: 'Hello', b: 'World'}; //這是一個JS對象,注意鍵名也是可以使用引號包裹的
var json = '{"a": "Hello", "b": "World"}'; //這是一個 JSON 字符串,本質(zhì)是一個字符串
JSON 變量類型
在 JS 語言中,一切都是對象。因此,任何支持的類型都可以通過 JSON 來表示,例如字符串、數(shù)字、對象、數(shù)組等。
==> 但是對象和數(shù)組是比較特殊且常用的兩種類型。
對象:對象在 JS 中是使用花括號包裹 {} 起來的內(nèi)容,數(shù)據(jù)結(jié)構(gòu)為 {key1:value1, key2:value2, ...} 的鍵值對結(jié)構(gòu)。在面向?qū)ο蟮恼Z言中,key 為對象的屬性,value 為對應的值。鍵名可以使用整數(shù)和字符串來表示。值的類型可以是任意類型。
數(shù)組:數(shù)組在 JS 中是方括號 [] 包裹起來的內(nèi)容,數(shù)據(jù)結(jié)構(gòu)為 ["java", "javascript", "vb", ...] 的索引結(jié)構(gòu)。在 JS 中,數(shù)組是一種比較特殊的數(shù)據(jù)類型,它也可以像對象那樣使用鍵值對,但還是索引使用得多。同樣,值的類型可以是任意類型。
JSON 語法規(guī)則
花括弧: 一個容器
方括號: 裝載數(shù)組
冒號: 名稱和值之間
逗號: 數(shù)組元素之間
雙引號: 用于包裹`鍵`和`值`
實例
1 - JSON 數(shù)據(jù):鍵值對
"name":"Runoob"
2 - JSON 對象
{ "name":"Runoob", "url":"www.runoob.com" }
3 - JSON 數(shù)組
"sites":[
{"name":"Runoob", "url":"www.runoob.com"},
{"name":"Google", "url":"www.google.com"},
{"name":"Taobao", "url":"www.taobao.com"}
]
JSON 和 JS 對象互轉(zhuǎn)
要實現(xiàn)從對象轉(zhuǎn)換為 JSON 字符串,使用 JSON.stringify() 方法
var json = JSON.stringify({a: 'Hello', b: 'World'}); //結(jié)果是 '{"a": "Hello", "b": "World"}'```
要實現(xiàn)從 `JSON 轉(zhuǎn)換`為`對象`,使用 `JSON.parse()` 方法 [○○○](http://www.runoob.com/try/try.php?filename=tryjs_json_parse)
var obj = JSON.parse('{"a": "Hello", "b": "World"}'); //結(jié)果是 {a: 'Hello', b: 'World'}```
和XML的比較
可讀性: JSON和XML的可讀性可謂不相上下,一邊是簡易的語法,一邊是規(guī)范的標簽形式,很難分出勝負。