JSON
為了過幾天要使用,還是去W3上面找了一些JSON資料復(fù)習(xí)了一下,以下來自W3蜓耻。
JSON 是用于存儲(chǔ)和傳輸數(shù)據(jù)的格式。
JSON 通常用于服務(wù)端向網(wǎng)頁(yè)傳遞數(shù)據(jù) 械巡。
JSON?是一種輕量級(jí)的數(shù)據(jù)交換格式刹淌。
JSON?使用?JavaScript?語(yǔ)法饶氏,但是?JSON?格式僅僅是一個(gè)文本。
文本是可以被任何編程語(yǔ)言讀取及作為數(shù)據(jù)格式傳遞有勾。
JSON實(shí)例
以下 JSON 語(yǔ)法定義了 sites 對(duì)象: 2 條網(wǎng)站信息(對(duì)象)的數(shù)組:
{"sites":[
? ? {"name":"Baidu", "url":"www.baidu.com"},
? ? {"name":"Google", "url":"www.google.com"},
]}
JSON 格式在語(yǔ)法上與創(chuàng)建 JavaScript 對(duì)象代碼是相同的疹启。
由于它們很相似,所以 JavaScript 程序可以很容易的將 JSON 數(shù)據(jù)轉(zhuǎn)換為 JavaScript 對(duì)象蔼卡。
語(yǔ)法規(guī)則
···數(shù)據(jù)為 鍵/值 對(duì)喊崖。
···數(shù)據(jù)由逗號(hào)分隔。
···大括號(hào)保存對(duì)象
···方括號(hào)保存數(shù)組
JSON 數(shù)據(jù) ----- 一個(gè)名稱對(duì)應(yīng)一個(gè)值
JSON 數(shù)據(jù)格式為 鍵/值 對(duì)雇逞,就像 JavaScript 對(duì)象屬性荤懂。
鍵/值對(duì)包括字段名稱(在雙引號(hào)中),后面一個(gè)冒號(hào)塘砸,然后是值:
"name":"Baidu"
JSON 對(duì)象
JSON 對(duì)象保存在大括號(hào)內(nèi)势誊。
就像在 JavaScript 中, 對(duì)象可以保存多個(gè) 鍵/值 對(duì):
{"name":"Baidu", "url":"www.baidu.com"}
JSON 數(shù)組
見上面的實(shí)例即可
JSON.parse()?方法
JSON.parse() 方法用于將一個(gè) JSON 字符串轉(zhuǎn)換為對(duì)象。
語(yǔ)法規(guī)則:
JSON.parse(text,[reviver])
參數(shù)說明:
```text: 必需谣蠢, 一個(gè)有效的 JSON 字符串粟耻。
```reviver:?可選,一個(gè)轉(zhuǎn)換結(jié)果的函數(shù)眉踱, 將為對(duì)象的每個(gè)成員調(diào)用此函數(shù)挤忙。
返回值:
返回給定 JSON 字符串轉(zhuǎn)換后的對(duì)象。
實(shí)例:
var text = '{"employees":[' +
'{"name":"Baidu","site":"http://www.baidu.com" },' +
'{"name":"Google","site":"http://www.Google.com" },' +
'{"name":"Taobao","site":"http://www.taobao.com" }]}';
obj = JSON.parse(text);document.getElementById("demo").innerHTML =
obj.employees[1].name + " " + obj.employees[1].site;
JSON.stringify() 方法
JSON.stringify() 方法用于將 JavaScript 值轉(zhuǎn)換為 JSON 字符串谈喳。
語(yǔ)法規(guī)則:
JSON.stringify(value[, replacer[, space]])
參數(shù)說明:
value: 必需册烈, 要轉(zhuǎn)換的 JavaScript 值(通常為對(duì)象或數(shù)組)。
replacer:可選婿禽。用于轉(zhuǎn)換結(jié)果的函數(shù)或數(shù)組赏僧。如果 replacer 為函數(shù),則 JSON.stringify 將調(diào)用該函數(shù)扭倾,并傳入每個(gè)成員的鍵和值淀零。使用返回值而不是原始值。如果此函數(shù)返回 undefined膛壹,則排除成員驾中。根對(duì)象的鍵是一個(gè)空字符串:""。如果 replacer 是一個(gè)數(shù)組模聋,則僅轉(zhuǎn)換該數(shù)組中具有鍵值的成員肩民。成員的轉(zhuǎn)換順序與鍵在數(shù)組中的順序一樣。
space: 可選链方,文本添加縮進(jìn)持痰、空格和換行符,如果 space 是一個(gè)數(shù)字祟蚀,則返回值文本在每個(gè)級(jí)別縮進(jìn)指定數(shù)目的空格工窍,如果 space 大于 10占调,則文本縮進(jìn) 10 個(gè)空格。space 也可以使用非數(shù)字移剪,如:\t究珊。
返回值:
返回包含 JSON 文本的字符串。
實(shí)例:
var str = {"name":"Baidu", "site":"http://www.baidu.com"}
str_pretty1 = JSON.stringify(str)document.write( "只有一個(gè)參數(shù)情況:" );
document.write( "<br>" );
document.write("<pre>" + str_pretty1 + "</pre>" );
document.write( "<br>" );
str_pretty2 = JSON.stringify(str, null, 4) //使用四個(gè)空格縮進(jìn)
document.write( "使用參數(shù)情況:" );
document.write( "<br>" );
document.write("<pre>" + str_pretty2 + "</pre>" ); // pre 用于格式化輸出