Can you summarize the following document?
        
  JSON格式是1999年《"JavaScript Programming Language, Standard ECMA-262 3rd Edition"》的子集合,所以可以在JavaScript以codice_3函式(javascript通過eval()呼叫解析器)讀入。不過這並不代表JSON無法使用於其他語言,事實上幾乎所有與網頁開發相關的語言都有JSON函式庫。  JSON的基本資料型別:  token(6種標點符號、字串、數值、3種字面量)之間可以存在有限的空白符並被忽略。四個特定字元被認為是空白符:空格符、水平製表符、回車符、換行符。空白符不能出現在token內部(但空格符可以出現在字串內部)。JSON標準不允許有位元組序掩碼,不提供註釋的句法。 一個有效的JSON文件的根節點必須是一個物件或一個陣列。  JSON交換時必須編碼為UTF-8。轉義序列可以為:“\\”、“\"”、“\/”、“\b”、“\f”、“\n”、“\r”、“\t”,或Unicode16進位制轉義字元序列(\u後面跟隨4位16進位制數字)。對於不在基本多文種平面上的碼位,必須用UTF-16代理對(surrogate pair)表示,例如對於Emoji字元在JSON中應表示為: JSON的格式描述可以參考RFC 4627。

  

  JSON最開始被廣泛的應用於WEB應用的開發。不過目前JSON使用在JavaScript、Java、Node.js應用的情況比較多,PHP、C#等開發的WEB應用主要還是使用XML。

  相對於傳統的關係型資料庫,一些基於文件儲存的NoSQL非關係型資料庫選擇JSON作為其資料儲存格式,比較出名的產品有:MongoDB、CouchDB、RavenDB等。

  這種JSON格式也被Minecraft遊戲用來當作的部分資料儲存的格式:

  

  由於JSON是JavaScript的子集,所以一般都會使用codice_3作為讀取資料的方式,如果是針對可靠的資料來源,在不支援原生JSON解析的瀏覽器上面這是最快速的方法。然而由於eval方法同樣可以執行任意的JavaScript程式碼,因此當資料來源不可靠時則可能產生安全問題。如下面的例子,直接用eval執行時會跳轉:  其中一種防止不安全程式碼出現的解決辦法,是通過瀏覽器原生支援的JSON.parse(str)方法讀取JSON資料,目前已經得到大部分主流瀏覽器的支援(IE8+,Firefox 3.5+,Chrome4+/Safari4+,Opera10+),在不支援原生JSON物件的瀏覽器上面可以使用codice_18方法進行讀取,codice_18採用解析器驗證讀入的程式碼是否真的是JSON程式碼,這樣就更安全。但由於這是用模擬的方式讀取,速度上會比codice_3慢。

  另外一個安全上的問題則是跨站請求偽造(Cross-site request forgery,簡稱CSRF或XSRF)。這個問題在Javascript中的狀況是,由於Javascript採用了稱為「沙盒」的機制,這種機制限制Javascript引擎僅能引入同一個站點的程式碼,因而某種程度上提高了安全性。

  

  JSON與XML最大的不同在於XML是一個完整的標記語言,而JSON不是。這使得XML在程式判讀上需要比較多的功夫。主要的原因在於XML的設計理念與JSON不同。XML利用標記語言的特性提供了絕佳的延展性(如XPath),在資料儲存,擴充套件及高階檢索方面具備對JSON的優勢,而JSON則由於比XML更加小巧,以及瀏覽器的內建快速解析支援,使得其更適用於網路資料傳輸領域。

  MessagePack宣稱比JSON更短小,快速。

  JSON格式取代了XML給網路傳輸帶來了很大的便利,但是卻沒有了XML的一目瞭然,尤其是JSON資料很長的時候,會讓人陷入繁瑣複雜的資料節點查詢中。開發者可以通過線上JSON格式化工具,來更方便的對JSON資料進行節點查詢和解析。
JSON(JavaScript Object Notation,JavaScript物件表示法,讀作/ˈdʒeɪsən/)是一種由道格拉斯·克羅克福特構想和設計、輕量級的資料交換語言,該語言以易於讓人閱讀的文字為基礎,用來傳輸由屬性值或者序列性的值組成的資料物件。儘管JSON是JavaScript的一個子集,但JSON是獨立於語言的文字格式,並且採用了類似於C語言家族的一些習慣。