什么是JSON
JavaScript Object Notation剧包,JS對象表示方法贷岸。
是輕量級的文本數(shù)據(jù)交換格式。
與XML類似头镊。
XML和JSON的區(qū)別
相同:
- 都是純文本
- 具有“自我描述性”,人類可讀
- 具有層級結(jié)構(gòu)
- 可通過JS進(jìn)行解析
- 數(shù)據(jù)可使用AJAX進(jìn)行傳輸
不同:
對JSON來說:
- 沒有結(jié)束標(biāo)簽
- 更短
- 讀寫速度更快
- 使用數(shù)組
- 無保留字
- 可使用內(nèi)建的 JavaScript eval() 方法進(jìn)行解析
語法
基本語法規(guī)則在前面整理 JavaScript 的文章中有提到魄幕,不再重復(fù)相艇。
創(chuàng)建對象
var animal = [
{"name":"Cat","Color":"Orange"},
{"name":"Dog","Color":"Black"},
{"name":"Rabbit","Color":"White"}
]
訪問對象值
var a = animal[0].name;
var b = animal[1]["name"];
兩種方式都可以。
循環(huán)輸出對象屬性
for (i in animal[0]) {
document.getElementById('property').innerHTML += i + "<br>";
}
循環(huán)輸出對象屬性值
for (j in animal[0]) {
document.getElementById('property').innerHTML += animal[0][j] + "<br>";
}
循環(huán)數(shù)組啥的balabala都類似纯陨,看一眼就融會(huì)貫通了坛芽,不多寫了。主要是懶
以上示例代碼運(yùn)行結(jié)果:
對象數(shù)組的創(chuàng)建翼抠、修改與訪問
示例代碼:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>對象數(shù)組</title>
</head>
<body>
<h1>對象數(shù)組的創(chuàng)建靡馁、修改與訪問</h1>
<p>第一只貓叫<span id = "name1"></span></p>
<p>第一只貓改名之后叫<span id = "name2"></span></p>
<script type="text/javascript">
//創(chuàng)建對象數(shù)組
var cat = [
{"name":"團(tuán)團(tuán)","breed":"英短"},
{"name":"Nuts","breed":"曼赤肯"},
{"name":"湯圓","breed":"美短"},
];
//訪問對象數(shù)組
document.getElementById('name1').innerHTML = cat[0].name;
//修改
cat[0].name = "包子";
document.getElementById("name2").innerHTML = cat[0].name;
</script>
</body>
</html>
運(yùn)行結(jié)果:
數(shù)據(jù)與JS對象相互轉(zhuǎn)換
數(shù)據(jù)轉(zhuǎn)JS對象:JSON.parse()
JS對象轉(zhuǎn)數(shù)據(jù):JSON.stringify()
具體怎么用,在整理JavaScript的文章中有詳細(xì)示例机久,這里就不復(fù)制粘貼湊字?jǐn)?shù)了。
JSON的整理有部分內(nèi)容JS里面有提到赔嚎,就簡單略過了膘盖,補(bǔ)充了一些之前沒有顧到的地方。