|
JSON(Javascript Object Notation) 是一種輕量級(jí)的數(shù)據(jù)交換格式。易于人閱讀和編寫(xiě)。同時(shí)也易于機(jī)器解析和生成。它基于Javascript Programming Language, Standard ECMA-262 3rd Edition - December 1999的一個(gè)子集。JSON采用完全獨(dú)立于語(yǔ)言的文本格式,但是也使用了類(lèi)似于C語(yǔ)言家族的習(xí)慣(包括C, C++, C#, Java, Javascript, Perl, Python等)。這些特性使JSON成為理想的數(shù)據(jù)交換語(yǔ)言。
JSON概念很簡(jiǎn)單,就是服務(wù)器直接生成Javascript語(yǔ)句,客戶端獲取后直接用eval方法來(lái)獲得這個(gè)對(duì)象,這樣就可以省去解析XML的性損失。
使用XML表示:
復(fù)制代碼 代碼如下:
<items>
<item>
<id>1</id>
<author>Jackson</author>
<url>http://www.jb51.NET</url>
<content>Welcome to Web.cn</content>
</item>
<item>
<id>2</id>
<author>Relkn</author>
<url>http://www.jb51.NET</url>
<content>Web.cn關(guān)注互聯(lián)網(wǎng)新技術(shù)</content>
</item>
<item>
<id>3</id>
<author>Kvogend</author>
<url>http://www.jb51.NET</url>
<content>jb51.NET腳本之家</content>
</item>
</items>
代碼:
復(fù)制代碼 代碼如下:
<items>
<item>
<id>1</id>
<author>Jackson</author>
<url>http://www.jb51.NET</url>
<content>Welcome to Web.cn</content>
</item>
<item>
<id>2</id>
<author>Relkn</author>
<url>http://www.jb51.NET</url>
<content>Web.cn關(guān)注互聯(lián)網(wǎng)新技術(shù)</content>
</item>
<item>
<id>3</id>
<author>Kvogend</author>
<url>http://www.jb51.NET</url>
<content>jb51.NET腳本之家</content>
</item>
</items>
使用JSON:
復(fù)制代碼 代碼如下:
{items:[
{
id:1,
author:/"Jackson/",
url:/"http://www.jb51.NET/",
content:/"Welcome to Web.cn/"
},
{
id:2,
author:/"Relkn/",
url:/"http://www.jb51.NET/",
content:/"Web.cn關(guān)注互聯(lián)網(wǎng)新技術(shù)/"
},
{
id:3,
author:/"Kvogend/",
url:/"http://www.jb51.NET/",
content:/"jb51.NET腳本之家/"
}
]};
代碼:
復(fù)制代碼 代碼如下:
{items:[
{
id:1,
author:/"Jackson/",
url:/"http://www.jb51.NET/",
content:/"Welcome to Web.cn/"
},
{
id:2,
author:/"Relkn/",
url:/"http://www.jb51.NET/",
content:/"Web.cn關(guān)注互聯(lián)網(wǎng)新技術(shù)/"
},
{
id:3,
author:/"Kvogend/",
url:/"http://www.jb51.NET/",
content:/"jb51.NET腳本之家/"
}
]};
JSON不僅減少了解析XML解析帶來(lái)的性能問(wèn)題和兼容性問(wèn)題,而且對(duì)于Javascript來(lái)說(shuō)非常容易使用,可以方便的通過(guò)遍歷數(shù)組以及訪問(wèn)對(duì)象屬性來(lái)獲取數(shù)據(jù),其可讀性也不錯(cuò),基本具備了結(jié)構(gòu)化數(shù)據(jù)的性質(zhì)。不得不說(shuō)是一個(gè)很好的辦法,而且事實(shí)上google maps就沒(méi)有采用XML傳遞數(shù)據(jù),而是采用了JSON方案。
JSON的另外一個(gè)優(yōu)勢(shì)是"跨域性",例如你在www.jb51.NET的網(wǎng)頁(yè)里使用
<script type="text/Javascript" src="" target="_blank">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ù)器端和客戶端有不同的開(kāi)發(fā)人員。它們必須協(xié)商對(duì)象的格式,這很容易造成錯(cuò)誤。
JavaScript技術(shù):看了就知道什么是JSON,轉(zhuǎn)載需保留來(lái)源!
鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。