JSON 代表 JavaScript Object Notation,基本上,JSON 經(jīng)常與 JavaScript 一起使用,它最初是 JavaScript 編程語(yǔ)言的子集。然而,JSON 是一種獨(dú)立于語(yǔ)言的數(shù)據(jù)格式。在本文中,我們將通過(guò)示例了解 JSON 及其有趣的事實(shí)。
JSON 簡(jiǎn)介
當(dāng)數(shù)據(jù)可以以簡(jiǎn)單的格式傳輸和存儲(chǔ)時(shí),稱為 JSON,或 JavaScript 對(duì)象表示法。數(shù)組、對(duì)象、名稱和值對(duì)以及其他數(shù)據(jù)類型都可以在 JSON 中找到。該格式使用引號(hào)、方括號(hào)、括號(hào)、分號(hào)和冒號(hào)作為標(biāo)點(diǎn)符號(hào)。在 JSON 中,數(shù)據(jù)表示為名稱-值對(duì),很像 JavaScript 對(duì)象屬性。 JSON 是一種輕量級(jí)的數(shù)據(jù)傳輸方式。而且,這種語(yǔ)言被描述為基于原型、多范式和動(dòng)態(tài)的。每當(dāng)數(shù)據(jù)從服務(wù)器發(fā)送到網(wǎng)頁(yè)時(shí),我們都需要使用 JSON。
JSON 事實(shí)
在這里,我們將通過(guò)解釋和示例討論有關(guān) JSON 的許多有趣的事實(shí)。以下是有關(guān) JSON 的有趣事實(shí) –
最初,JSON 被認(rèn)為是 JavaScript 編程語(yǔ)言的子集。 (特別是 1999 年 12 月發(fā)布的標(biāo)準(zhǔn) ECMA-262,第三版)。
JSON 是由 JavaScript 生成的,現(xiàn)在許多編程語(yǔ)言都有可用于調(diào)用和解釋 JSON 格式數(shù)據(jù)的代碼。它是一種不特定于語(yǔ)言的數(shù)據(jù)格式。接受的 JSON 互聯(lián)網(wǎng)媒體類型是 application/JSON。 .json 擴(kuò)展名用于 JSON 文件名。
Douglas Crockford 是第一個(gè)定義并推廣 JSON 格式的人。 2001 年 4 月,Douglas Crockford 和 Chip Morningstar 發(fā)送了第一條 JSON 消息。
Crockford 在 JSON 許可證中插入了一個(gè)短語(yǔ),聲明“該軟件應(yīng)用于善良,而非邪惡”。另一方面,由于自由軟件和開源軟件通常意味著對(duì)使用目的沒(méi)有限制,這部分內(nèi)容導(dǎo)致了 JSON 許可證與其他開源許可證的許可兼容性問(wèn)題。
JSON 格式的語(yǔ)法與 JavaScript 對(duì)象創(chuàng)建代碼的語(yǔ)法相當(dāng)。這使得 JavaScript 程序可以輕松地將 JSON 數(shù)據(jù)轉(zhuǎn)換為 JavaScript 對(duì)象。 JSON 數(shù)據(jù)可以被任何編程語(yǔ)言使用,并且由于它只是文本格式,因此可以在機(jī)器之間輕松傳輸。
Cartoon Network 的 Communities.com 上有一款兒童數(shù)字資產(chǎn)交易游戲,名為“Cartoon Orbit”(State 聯(lián)合創(chuàng)始人均曾在該公司工作過(guò)),使用的是瀏覽器端插件,帶有自定義消息系統(tǒng)以更改 DHTML 組件。這是 JSON 庫(kù)的開始階段。
如果 JSON 文件存在語(yǔ)法問(wèn)題,請(qǐng)求通常會(huì)失敗且無(wú)提示。因此,不應(yīng)頻繁手動(dòng)編輯 JSON 數(shù)據(jù)。數(shù)據(jù)交換格式 JSON 比 JavaScript 的對(duì)象字面量表示法具有更高的語(yǔ)法要求。例如,JSON 表示中的所有字符串,無(wú)論是值還是屬性,都需要包含在雙引號(hào)中
JSON 字符串由用戶瀏覽器中運(yùn)行的 JavaScript 解密,然后在頁(yè)面上顯示產(chǎn)品數(shù)據(jù)。
使用 JSON
正如我們所見,JSON 是 JavaScript 編程語(yǔ)言中的一種對(duì)象類型,它以字符串文字的形式存儲(chǔ)數(shù)據(jù),并以 .json 擴(kuò)展名結(jié)尾。 JSON 的對(duì)象以鍵值格式存儲(chǔ)數(shù)據(jù),就像 JavaScript 的對(duì)象一樣,用大括號(hào)括起來(lái)。讓我們看一個(gè)例子來(lái)更好地了解 JSON 代碼 –
{ "key1" : "pair1", "key2" : "pair2", "key3" : { "sub-key1" : "opp_value", "sub_key2" : "opp_value", }, "key4" : { "sub-key1" : "opp_value", "sub_key2" : "opp_value", }, "key5" : "pair5", }
登錄后復(fù)制
在上面的 JSON 代碼中,我們可以看到有 5 個(gè)鍵對(duì),其中鍵是簡(jiǎn)單字符串的形式,鍵對(duì)可以是字符串,也可以是其他對(duì)象,可以是數(shù)組、字符串等。所有密鑰對(duì)均由逗號(hào)分隔并覆蓋在大括號(hào)內(nèi)。
任何數(shù)據(jù)都可以以這種方式存儲(chǔ),并且可以使用這種格式以簡(jiǎn)單的方式傳遞或共享。
在 JSON 中存儲(chǔ)數(shù)組
我們已經(jīng)看到了編寫 JSON 對(duì)象的簡(jiǎn)單代碼,現(xiàn)在讓我們看看用戶如何在 JSON 對(duì)象中存儲(chǔ)數(shù)組 –
{ "key1" : "pair1", "key2" : "pair2", "key3" : { "sub-key1" : "opp_value", "sub_key2" : "opp_value", }, "key4" : [ "sub-key1" : "opp_value", "sub_key2" : "opp_value", object1, object2 ], "key5" : "pair5", }
登錄后復(fù)制
在上面的代碼中,我們可以看到第四個(gè)鍵中存儲(chǔ)的是一個(gè)數(shù)組,而不是另一個(gè)對(duì)象,這是 json 支持的。
JSON 和 XML 之間的區(qū)別
JSON 和 XML 都用于存儲(chǔ)數(shù)據(jù)并共享或傳輸數(shù)據(jù),并且兩者都非常擅長(zhǎng)自己的聯(lián)盟??,讓我們看看它們之間的一些區(qū)別 –
與 XML 相比,JSON 非常容易學(xué)習(xí),因?yàn)樗⒉恢苯邮褂谩?/p>
由于 JSON 只是一個(gè)包含密鑰對(duì)形式的數(shù)據(jù)的直字符串,因此很容易讀寫 JavaScript 對(duì)象,而 XML 則很難讀寫
JSON 是面向數(shù)據(jù)的,并且以這種方式工作,而 XML 是面向文檔的。
JSON 并不安全,因?yàn)樗皇敲嫦驍?shù)據(jù)的,而 XML 與 JSON 相比相當(dāng)安全。
XML 不支持?jǐn)?shù)組,而 JSON 提供了支持?jǐn)?shù)組的工具。
XML 和 JSON 之間的相似之處
我們已經(jīng)看到了 JSON 和 XML 之間的一些差異,現(xiàn)在讓我們看看它們之間的一些共同點(diǎn) –
由于 XML 和 JSON 都包含人們可以閱讀的文本,因此它們都是自描述性的
JSON 和 XML 都支持分層組織。當(dāng)我們談?wù)搶哟谓Y(jié)構(gòu)時(shí),我們指的是包含在值中的值。
數(shù)據(jù)交換格式 JSON 和 XML 等數(shù)據(jù)交換格式受到多種編程語(yǔ)言的支持。
這兩種格式都可以快速、簡(jiǎn)單地處理。
檢索:兩種形式的數(shù)據(jù)都可以使用 HTTP 請(qǐng)求檢索。可以使用 GET、PUT 和 POST 方法檢索數(shù)據(jù)。
結(jié)論
在本文中,我們通過(guò)示例了解了 JSON 及其有趣的事實(shí)。 JSON 代表 JavaScript 對(duì)象表示法,基本上,JSON 經(jīng)常與 JavaScript 一起使用,它最初是 JavaScript 編程語(yǔ)言的子集。數(shù)組、對(duì)象、名稱和值對(duì)以及其他數(shù)據(jù)類型都可以在 JSON 中找到。該格式使用引號(hào)、方括號(hào)、括號(hào)、分號(hào)和冒號(hào)作為標(biāo)點(diǎn)符號(hào)。
以上就是關(guān)于 JSON 的有趣事實(shí)的詳細(xì)內(nèi)容,更多請(qǐng)關(guān)注www.92cms.cn其它相關(guān)文章!