JSON語法
JSON 語法是 JavaScript 語法的子集。
JSON 語法規(guī)則
JSON 語法是 JavaScript 對象表示語法的子集。
- 數(shù)據(jù)在名稱/值對中
- 數(shù)據(jù)由逗號分隔
- 大括號 {} 保存對象
- 中括號 [] 保存數(shù)組,數(shù)組可以包含多個對象
JSON 名稱/值對
JSON 數(shù)據(jù)的書寫格式是:
key : value
名稱/值對包括字段名稱(在雙引號中),后面寫一個冒號,然后是值:
"name" : "菜鳥教程"
#這很容易理解惜索,等價于這條 JavaScript 語句:
name = "菜鳥教程"
JSON 值
JSON 值可以是:
- 數(shù)字(整數(shù)或浮點數(shù))
- 字符串(在雙引號中)
- 邏輯值(true 或 false)
- 數(shù)組(在中括號中)
- 對象(在大括號中)
- null
JSON 數(shù)字
JSON 數(shù)字可以是整型或者浮點型:
{ "age":30 }
JSON 對象
- JSON 對象在大括號 {} 中書寫,對象可以包含多個名稱/值對:
{ "name":"runoob", "alexa":10000, "site":null }
- 你可以使用點號(.)來訪問對象的值剃浇,你也可以使用中括號([ ])來訪問對象的值:
var myObj, x;
myObj = { "name":"runoob", "alexa":10000, "site":null };
#例如:
x = myObj.name;
x = myObj["name"];
- 循環(huán)對象
你可以使用 for-in 來循環(huán)對象的屬性巾兆,在 for-in 循環(huán)對象的屬性時,使用中括號([ ])來訪問屬性的值:
var myObj = { "name":"runoob", "alexa":10000, "site":null };
for (x in myObj) {
document.getElementById("demo").innerHTML += myObj[x] + "<br>";
}
結(jié)果:
runoob
10000
null
- 嵌套 JSON 對象
JSON 對象中可以包含另外一個 JSON 對象:
myObj = {
"name":"runoob",
"alexa":10000,
"sites": {
"site1":"www.runoob.com",
"site2":"m.runoob.com",
"site3":"c.runoob.com"
}
}
可以使用點號(.)或者中括號([])來訪問嵌套的 JSON 對象偿渡。
x = myObj.sites.site1;// 或者
x = myObj.sites["site1"];
- 修改值
你可以使用點號(.)來修改 JSON 對象的值臼寄,也可以使用中括號([])來修改 JSON 對象的值:
myObj.sites.site1 = "www.google.com";
myObj.sites["site1"] = "www.google.com";
- 刪除對象屬性
我們可以使用 delete 關(guān)鍵字來刪除 JSON 對象的屬性:
delete myObj.sites.site1;
delete myObj.sites["site1"]
JSON 數(shù)組
- 數(shù)組作為 JSON 對象
[ "Google", "Runoob", "Taobao" ]
- 對象屬性的值可以是一個數(shù)組:
{
"name":"網(wǎng)站",
"num":3,
"sites":[ "Google", "Runoob", "Taobao" ]
}
- JSON 數(shù)組在中括號 [] 中書寫,數(shù)組可包含多個對象:
[
{ key1 : value1-1 , key2:value1-2 },
{ key1 : value2-1 , key2:value2-2 },
...
{ key1 : valueN-1 , key2:valueN-2 },
]
{
"sites": [
{ "name":"菜鳥教程" , "url":"www.runoob.com" },
{ "name":"google" , "url":"www.google.com" },
{ "name":"微博" , "url":"www.weibo.com" }
]
}
在上面的例子中溜宽,對象 sites 是包含三個對象的數(shù)組吉拳。每個對象代表一條關(guān)于某個網(wǎng)站(name、url)的記錄适揉。
JSON 布爾值
JSON 布爾值可以是 true 或者 false:
JSON null
JSON 可以設(shè)置 null 值:{ "runoob":null }
JSON 使用 JavaScript 語法
- 因為 JSON 使用 JavaScript 語法留攒,所以無需額外的軟件就能處理 JavaScript 中的 JSON煤惩。通過 JavaScript,您可以創(chuàng)建一個對象數(shù)組炼邀,并像這樣進行賦值:
var sites = [
{ "name":"runoob" , "url":"www.runoob.com" },
{ "name":"google" , "url":"www.google.com" },
{ "name":"微博" , "url":"www.weibo.com" }
];
- 可以像這樣訪問 JavaScript 對象數(shù)組中的第一項(索引從 0 開始):
sites[0].name;返回的內(nèi)容是:runoob - 可以像這樣修改數(shù)據(jù):
sites[0].name="菜鳥教程";