發表日期:2019-09 文章編輯:小燈 瀏覽次數:4223
JSON 已經占領了全世界。如今,任何兩個應用程序通過互聯網相互通信時,他們很可能使用的就是 JSON。JSON 已被所有大型企業采用。在十大最受歡迎的網絡 API 中,主要由 Google,Facebook 和 Twitter 等主要公司提供的 API 列表,只有一個 API 以 XML 而不是 JSON 的形式公開數據。 Twitter 從在 API 列表中作了一個說明,它支持 XML 直到 2013 年,當時它發布了一個新版本的 API,它刪除了 XML,轉而專門使用 JSON。JSON 也被編程等級和文件廣泛采用。根據 Stack Overflow 上的數據顯示,現在有更多關于 JSON 的問題,而不是 XML 相關的問題更多。
從上圖中可以明顯的看到,json 越來越受歡迎,而 xml 的使用則一直在下降!
當然并不是說 xml 完全無用。很多應用還在采用 xml ,包含一些 SVG、RSS、Atom提要,Android 的應用需要用戶許可等方面使用的都還是 xml。XML 也不是 JSON 的唯一替代品,有些人現在使用 YAML 或 Google 的 Protocol Buffers 等技術。但這些遠不如 JSON 那么受歡迎。目前,JSON 似乎是通過互聯網與其他程序進行通信的首選格式。
在 2005 年 ajax 興起的時候,當初采用的是 xml,所以 ajax 中帶有一個 x。而現在的 ajax 技術多使用的是 json 的方式傳遞數據,因此 ajax 應該改為 ajaj。
第一個 JSON 消息是在 2001年4月發送的。由于這是計算中歷史上重要的時刻,因此消息是從Bay-Area車庫中的計算機發送的。Douglas Crockford 和 Chip Morningstar 是一家名為 State Software 的技術咨詢公司的聯合創始人,他們聚集在 Morningstar 的車庫里測試了使用 JSON 傳遞信息的這一想法。
Crockford 和 Morningstar 試圖在“AJAX”這個術語被創造之前很好地構建 AJAX 應用程序。瀏覽器對他們嘗試的內容的支持并不友好。他們希望在初始頁面加載后將數據傳遞給他們的應用程序,但實驗過后他們沒有找到一種方法來實現這一點,尤其是想在所有的瀏覽器中被支持。
現在我們可能很難相信。但是在 2001 年 Internet Explorer(IE瀏覽器)是最流行的瀏覽器。早在 1999 年,Internet Explorer 5 就支持 XMLHttpRequest 的原始形式,程序員可以使用名為 ActiveX 的框架進行訪問。Crockford 和 Morningstar 已經使用這項技術為他們的應用程序獲取數據,但他們無法在 Netscape 4 中使用相同的解決方案。所以Crockford 和 Morningstar 必須使用在兩種瀏覽器中都能夠支持的方案。
第一條 JSON 消息用法如下所示:
<html><head><script>document.domain = 'fudco';parent.session.receive({ to: "session", do: "test",text: "Hello world" })</script></head></html>
從上面可以看出,消息中只有一小部分類似于 JSON。該消息本身實際上是一個包含一些 JavaScript 的 HTML 文檔。類似于 JSON 的部分只是傳遞給一個名為 receive 的函數。
Crockford 和 Morningstar 決定使用基于幀的技術,有時也被稱為隱藏幀技術,該技術在90年代末廣泛實施了 XMLHttpRequest 及時之前被普遍使用過。這種技術可以在 URL 上指出一個框架,該框架將返回如上所述的 HTML 文檔。收到 HTML 后,將運行 JavaScript,將對象文字傳遞回應用程序。該技術也有一些局限性。那就是在使用時必須小心翼翼地回避瀏覽器保護以防止子窗口訪問其父窗口。Crockford 和 Mornginstar 通過明確設置文檔域來做到這一點。
當時所有人都對這第一個 JSON 消息感到驚訝,但是 Crockford 本人卻說他不是第一個這樣做的人。他說 Netscape 的某人早在 1996 年就使用 JavaScript 數組文字來傳達信息,而且他說他使用的 JSON 并不是一種新的數據格式,JavaScript 解釋器可以完成所有解析操作。
第一個 JSON 消息實際上與 JavaScript 解釋器發生了沖突。這是因為第一個 JSON 消息中的 do 是 JavaScript 中的保留關鍵字。從 ECMAScript 6 開始就有 64 個保留關鍵字。
Crockford 和 Morningstar 意識到 JSON 將來可能被廣泛的使用,所以他們想為 JavaScript 標記語言命名他們的格式“JSML”,但發現這個縮寫詞已被用于 Java 語音標記語言。所以他們決定采用“JavaScript Object Notation”即 JSON。他們開始向其他用戶推廣它,但很快發現其他開發者不愿意冒險使用這種缺乏官方規格的未知技術。
2002年,Crockford 購買了域名 JSON.org 并提出了 JSON 語法和解析器的示例實現。該網站仍處于運行狀態,但它現在包含了2013年批準的 JSON ECMA 標準的重要鏈接。在建立網站后,Crockford 沒有做更多的推廣 JSON,但很快發現許多人都在提交 JSON 解析器實現各種不同的編程語言。JSON 的血統明顯與 JavaScript 相關聯,但是實驗過后,發現 JSON 可以適用于所有語言之間的數據交換。
JSON 在 2005 年得到了很大的推動。那一年,一位名叫 Jesse James Garrett 的網頁設計師和開發人員在博客文章中創造了“AJAX”一詞。他小心翼翼地強調,AJAX 不是任何一種新技術,而是“幾種技術的結合,每種技術本身都在蓬勃發展,以強大的新方式匯集在一起??。一時間“AJAX”這種技術受到了很多 Web 應用程序開發者的青睞。他的博客文章接著描述了開發人員如何利用 JavaScript 和 XMLHttpRequest 構建新的應用程序,這些應用程序比典型的網頁更具響應性和有狀態。他指出Gmail 和 Flickr 是已經采用 AJAX 技術的網站的最好的例子。
“AJAX”中的“X”代表XML。Garrett 指出 JSON 是完全可以接受的 XML 替代品。他寫道:“XML 是用于將數據輸入和輸出 AJAX 客戶端的最完善的方法,但是沒有理由使用 JavaScript Object Notation 等技術或任何類似的數據結構方法來實現相同的效果。?
當有人發現他們可以輕松地使用 JSON 來構建 AJAX 應用程序時,就不再對 XML 感興趣。意外的是 xml 的發展導致了 JSON 的普及。當然也有人反對 JSON,認為 JSON 是重復造輪子。
到 2014 年,JSON 已經由 ECMA 標準和 RFC 正式指定。它有自己的 MIME 類型。JSON 已經進入了大聯盟。
在JSON.org上,Crockford總結了JSON相對于XML的一些優勢。他寫道,JSON對于人類和機器來說都更容易理解,因為它的語法極小且結構可預測。Crockford還聲稱JSON的另一個巨大優勢是JSON被設計為數據交換格式。它的目的是從一開始就在程序之間傳遞結構化信息。XML雖然用于相同的目的,但最初被設計為文檔標記語言。
日期:2019-09 瀏覽次數:6811
日期:2019-09 瀏覽次數:4676
日期:2019-09 瀏覽次數:5494
日期:2019-09 瀏覽次數:10711
日期:2019-09 瀏覽次數:10752
日期:2019-09 瀏覽次數:4464
日期:2019-09 瀏覽次數:4054
日期:2019-09 瀏覽次數:3877
日期:2019-09 瀏覽次數:3447
日期:2019-09 瀏覽次數:4170
日期:2019-09 瀏覽次數:7900
日期:2019-09 瀏覽次數:3700
日期:2019-09 瀏覽次數:4222
日期:2019-09 瀏覽次數:3736
日期:2019-09 瀏覽次數:3877
日期:2019-09 瀏覽次數:4160
日期:2019-09 瀏覽次數:5745
日期:2019-09 瀏覽次數:3432
日期:2019-09 瀏覽次數:4474
日期:2019-09 瀏覽次數:3927
日期:2019-09 瀏覽次數:4168
日期:2019-09 瀏覽次數:4206
日期:2019-09 瀏覽次數:3539
日期:2019-09 瀏覽次數:4368
日期:2019-09 瀏覽次數:5475
日期:2019-09 瀏覽次數:5324
日期:2019-09 瀏覽次數:3609
日期:2019-09 瀏覽次數:8974
日期:2019-09 瀏覽次數:4575
日期:2019-09 瀏覽次數:3908
Copyright ? 2013-2018 Tadeng NetWork Technology Co., LTD. All Rights Reserved.