JSON 與 XML 對(duì)比

2023-04-17 11:33 更新

定義和用途

XML:擴(kuò)展標(biāo)記語(yǔ)言 (Extensible Markup Language, XML) ,用于標(biāo)記電子文件使其具有結(jié)構(gòu)性的標(biāo)記語(yǔ)言,可以用來(lái)標(biāo)記數(shù)據(jù)、定義數(shù)據(jù)類型,是一種允許用戶對(duì)自己的標(biāo)記語(yǔ)言進(jìn)行定義的源語(yǔ)言。

JSON(JavaScript Object Notation)是一種輕量級(jí)的文本數(shù)據(jù)交換格式,具有良好的可讀和便于快速編寫(xiě)的特性,可在不同平臺(tái)之間進(jìn)行數(shù)據(jù)交換。

JSON 和 XML 都是人類可讀的格式并且與語(yǔ)言無(wú)關(guān)。在現(xiàn)實(shí)環(huán)境中它們都支持創(chuàng)建,讀取和解碼。

我們可以通過(guò)以下的因素來(lái)比較 JSON 和 XML:

冗余度

XML 文件龐大,文件格式復(fù)雜,傳輸占帶寬;JSON 數(shù)據(jù)格式比較簡(jiǎn)單,易于讀寫(xiě),格式都是壓縮的,占用帶寬小。

XML 比 JSON 冗余,因此對(duì)我們來(lái)說(shuō)編寫(xiě) JSON 會(huì)更快。

數(shù)組用法

XML 被用來(lái)描述結(jié)構(gòu)化數(shù)據(jù),不包含數(shù)組;而 JSON 包含數(shù)組。

 雖然XML沒(méi)有數(shù)組,但XML也有表示一組數(shù)據(jù)的方法!

解析

JavaScript:

JavaScript可以使用JSON.parse()方法解析JSON對(duì)象。

這是一個(gè)例子:

var obj = JSON.parse('{ "name":"John", "age":30, "city":"New York"}');

其中,'{ “name”:“John”, “age”:30, “city”:“New York”}'是JSON對(duì)象。

也可以使用 JavaScript 的 eval 方法解析 JSON。當(dāng)針對(duì) JSON 應(yīng)用這個(gè)方法時(shí),eval 返回描述的對(duì)象。但不推薦使用該方法。

eval()方法會(huì)執(zhí)行任何傳遞給它的JavaScript代碼,這可能會(huì)導(dǎo)致安全問(wèn)題。

XML:

可以使用DOMParser對(duì)象解析XML文本并返回一個(gè)XML Document對(duì)象。

這是一個(gè)例子:

var parser = new DOMParser();
var xmlDoc = parser.parseFromString(text,"text/xml");

其中,text是XML文本。

示例

下面分別展示了一個(gè) XML 和 JSON 示例:

JSON:

{
    "company":"Volkswagen",
    "name": "Vento",
    "price": 800000
}

XML:

<car>
   <company>Volkswagen</company>
   <name>Vento</name>
   <price>800000</price>
</car>

相關(guān)教程

更多關(guān)于XML的知識(shí),請(qǐng)參考:XML教程


以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)