|
我們知道AJAX技術(shù)能夠使得每一次請(qǐng)求更加迅捷,對(duì)于每一次請(qǐng)求返回的不是整個(gè)頁(yè)面,也僅僅是所需要返回的數(shù)據(jù)。通常AJAX通過返回XML格式的數(shù)據(jù),然后再通過客戶端復(fù)雜的JavaScript腳本解析和渲染這些XML格式的數(shù)據(jù)。
JSON(讀Jason)是為了能夠使得數(shù)據(jù)格式成為一種標(biāo)準(zhǔn),更簡(jiǎn)單的被JavaScript解析。
優(yōu)點(diǎn)
1、輕量級(jí)的數(shù)據(jù)交換格式
2、人們讀寫更加容易
3、易于機(jī)器的解析和生成
4、能夠通過JavaScript中eval()函數(shù)解析JSON
5、JSON支持多語(yǔ)言。包括:ActionScript, C, C#, ColdFusion, E, Java, JavaScript, ML, Objective CAML, Perl, php, Python, Rebol, Ruby, and Lua.
語(yǔ)法
JSON語(yǔ)法是一種用于傳輸和生成數(shù)據(jù)的協(xié)定,很類似于C家族的語(yǔ)言,所以很容易被C家族的語(yǔ)言所解析。
對(duì)象:對(duì)象包含在{}之間
屬性:采用Key-Value對(duì)來表示。屬性之間使用逗號(hào)分開。 string : value
數(shù)組:數(shù)組存放在[]之間 [ elements ]
元素:元素之間用逗號(hào)分開
值:值可以是字符串,數(shù)字,對(duì)象,數(shù)組,true,false,null
例子:
JSON
[
{
name:"Michael",
email:"17bity@gmail.com",
homepage:"http://www.jialing.NET"
},
{
name:"John",
email:"john@gmail.com",
homepage:"http://www.jobn.com"
},
{
name:"Peggy",
email:"peggy@gmail.com",
homepage:"http://www.peggy.com"
}
]
事實(shí)上google maps就沒有采用XML傳遞數(shù)據(jù),而是采用了JSON方案。
JSON的另外一個(gè)優(yōu)勢(shì)是"跨域性",例如你在網(wǎng)頁(yè)里使用
<script type="text/Javascript" src="http://www.yyy.com/some.js">
是完全可行的,這就意味著你可以跨域傳遞信息。而使用XMLHttpRequest卻獲取不了跨域的信息,這是Javascript內(nèi)部的安全性質(zhì)所限制的。
JSON能完全取代XML嗎?當(dāng)然不能,原因就在于XML的優(yōu)勢(shì):通用性。要使服務(wù)器端產(chǎn)生語(yǔ)法合格的Javascript代碼并不是很容易做到的,這主要發(fā)生在比較龐大的系統(tǒng),服務(wù)器端和客戶端有不同的開發(fā)人員。
JavaScript技術(shù):json簡(jiǎn)單介紹,轉(zhuǎn)載需保留來源!
鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。