JavaScript的延伸,可通過(guò)eval()處理JSON字符串;
數(shù)據(jù)傳輸快,網(wǎng)絡(luò)占用小;
語(yǔ)法
對(duì)象
- JSON對(duì)象在
{}中書(shū)寫(xiě); - 對(duì)象可以包含多個(gè)
key:value; - key必須是字符串,value可以使合法的JSON數(shù)據(jù)類(lèi)型,
(串、數(shù)字、對(duì)象、數(shù)組、布爾或null); - key使用:分割;
- 每個(gè)
key/value使用逗號(hào)(,)分割;
數(shù)組
{
"sites": [
{ "name":"github" , "url":"www.github.com" },
{ "name":"google" , "url":"www.google.com" },
{ "name":"微博" , "url":"www.weibo.com" }
]
}
對(duì)象數(shù)組
var sites = [
{ "name":"github" , "url":"www.github.com" },
{ "name":"google" , "url":"www.google.com" },
{ "name":"微博" , "url":"www.weibo.com" }
];
*訪(fǎng)問(wèn):sites[0].name;——>github
*修改數(shù)據(jù):sites[0].name="blog";
文件類(lèi)型
- JSON 文件的文件類(lèi)型是
".json" - JSON 文本的 MIME 類(lèi)型(描述消息內(nèi)容類(lèi)型的因特網(wǎng)標(biāo)準(zhǔn))是
"application/json"
訪(fǎng)問(wèn) - 訪(fǎng)問(wèn)對(duì)象
對(duì)象.key或者對(duì)象[key] - 訪(fǎng)問(wèn)數(shù)組
myObj.sites[0] - 循環(huán)對(duì)象
for in
for (x in myObj) {
document.getElementById("demo").innerHTML += x + "<br>";
}
- 嵌套JSON對(duì)象
使用點(diǎn)號(hào)(.)或者中括號(hào)([])來(lái)訪(fǎng)問(wèn)嵌套的 JSON 對(duì)象
x = myObj.sites.site1;
// 或者
x = myObj.sites["site1"];
- 修改JSON值
myObj.sites.site1 = "www.google.com"; - 刪除JSON值
delete myObj.sites.site1;
數(shù)組
語(yǔ)法:
[]中書(shū)寫(xiě),其包含合法的JSON數(shù)據(jù)類(lèi)型(字符串、數(shù)字、對(duì)象、數(shù)組、布爾、null)其中還可以是JS表達(dá)式函數(shù)、日期、(未定義)undefined
- 對(duì)象中的數(shù)組
<p id="demo"></p>
<script>
var myObj, x;
myObj = {
"name":"網(wǎng)站",
"num":3,
"sites":[ "Google", "Runoob", "Taobao" ]
}
x = myObj.sites[1];
document.getElementById("demo").innerHTML = x;
</script>
- 循環(huán)數(shù)組
myObj = {
"name":"網(wǎng)站",
"num":3,
"sites":[ "Google", "Runoob", "Taobao" ]
}
for (i in myObj.sites) {
x += myObj.sites[i] + "<br>";
}
document.getElementById("demo").innerHTML = x ;
或者
for (i = 0; i < myObj.sites.length; i++) {
x += myObj.sites[i] + "<br>";
}
- 嵌套 JSON 對(duì)象中的數(shù)組
myObj = {
"name":"網(wǎng)站",
"num":3,
"sites": [
{ "name":"Google", "info":[ "Android", "Google 搜索", "Google 翻譯" ] },
{ "name":"Runoob", "info":[ "菜鳥(niǎo)教程", "菜鳥(niǎo)工具", "菜鳥(niǎo)微信" ] },
{ "name":"Taobao", "info":[ "淘寶", "網(wǎng)購(gòu)" ] }
]
}
遍歷
for (i in myObj.sites) {
x += "<h1>" + myObj.sites[i].name + "</h1>";
for (j in myObj.sites[i].info) {
x += myObj.sites[i].info[j] + "<br>";
}
}