本文目錄一覽:
json是什麼文件
JSON(JavaScript Object Notation) 是一種輕量級的數據交換格式。 易於人閱讀和編寫。同時也易於機器解析和生成。 它基於JavaScript Programming Language, Standard ECMA-262 3rd Edition – December 1999的一個子集。
JSON採用完全獨立於語言的文本格式,但是也使用了類似於C語言家族的習慣(包括C, C++, C#, Java, JavaScript, Perl, Python等)。 這些特性使JSON成為理想的數據交換語言。
JSON建構於兩種結構,一是“名稱/值”對的集合(A collection of name/value pairs)。不同的語言中,它被理解為對象(object),紀錄(record),結構(struct),字典(dictionary),哈希表(hash table),有鍵列表(keyed list),或者關聯數組 (associative array)。
二是值的有序列表(An ordered list of values)。在大部分語言中,它被理解為數組(array)。
擴展資料:
JSON簡要歷史
JSON(JavaScript Object Notation) 是一種輕量級的數據交換格式。易於人閱讀和編寫。同時也易於機器解析和生成。它基於JavaScript Programming Language, Standard ECMA-262 3rd Edition – December 1999的一個子集。
JSON是Douglas Crockford在2001年開始推廣使用的數據格式,在2005年-2006年正式成為主流的數據格式,雅虎和谷歌就在那時候開始廣泛地使用JSON格式。
參考資料來源:百度百科—json
json 是什麼文件
SON的全稱是”JavaScript Object Notation”,意思是JavaScript對象表示法,它是一種基於文本,獨立於語言的輕量級數據交換格式。XML也是一種數據交換格式,為什麼沒有選擇XML呢?因為XML雖然可以作為跨平台的數據交換格式,但是在JS(JavaScript的簡寫)中處理XML非常不方便,同時XML標記比數據多,增加了交換產生的流量,而JSON沒有附加的任何標記,在JS中可作為對象處理,所以我們更傾向於選擇JSON來交換數據。
JSON採用完全獨立於語言的文本格式,但是也使用了類似於C語言家族的習慣(包括C、C++、C#、Java、JavaScript、Perl、Python等)。這些特性使JSON成為理想的數據交換語言。易於人閱讀和編寫,同時也易於機器解析和生成(網絡傳輸速率)。JSON格式取代了xml給網絡傳輸帶來了很大的便利,但是卻沒有了xml的一目了然,尤其是json數據很長的時候,我們會陷入繁瑣複雜的數據節點查找中。
JSON可以使用專門的編譯器打開。JSON有兩種表示結構,對象和數組。對象結構以”{”大括號開始,以”}”大括號結束。中間部分由0或多個以”,”分隔的”key(關鍵字)/value(值)”對構成,關鍵字和值之間以”:”分隔。
json數據格式,xml數據格式的區別和用法
JSON(JavaScript Object Notation) 是一種輕量級的數據交換格式。易於人閱讀和編寫,同時也易於機器解析和生成。它基於JavaScript(Standard ECMA-262 3rd Edition – December 1999)的一個子集。 JSON採用完全獨立於語言的文本格式,但是也使用了類似於C語言家族的習慣(包括C, C++, C#, Java, JavaScript, Perl, Python等)。這些特性使JSON成為理想的數據交換語言。
JSON與XML的比較
◆可讀性
JSON和XML的可讀性可謂不相上下,一邊是簡易的語法,一邊是規範的標籤形式,很難分出勝負。
◆可擴展性
XML天生有很好的擴展性,JSON當然也有,沒有什麼是XML能擴展,JSON不能的。不過JSON在Javascript主場作戰,可以存儲Javascript複合對象,有着xml不可比擬的優勢。
◆編碼難度
XML有豐富的編碼工具,比如Dom4j、JDom等,JSON也有提供的工具。無工具的情況下,相信熟練的開發人員一樣能很快的寫出想要的xml文檔和JSON字符串,不過,xml文檔要多很多結構上的字符。
◆解碼難度
XML的解析方式有兩種:
一是通過文檔模型解析,也就是通過父標籤索引出一組標記。
例如:xmlData.getElementsByTagName_r(“tagName”),但是這樣是要在預先知道文檔結構的情況下使用,無法進行通用的封裝。
另外一種方法是遍歷節點(document 以及 childNodes)。這個可以通過遞歸來實現,不過解析出來的數據仍舊是形式各異,往往也不能滿足預先的要求。
凡是這樣可擴展的結構數據解析起來一定都很困難。
JSON也同樣如此。如果預先知道JSON結構的情況下,使用JSON進行數據傳遞簡直是太美妙了,可以寫出很實用美觀可讀性強的代碼。如果你是純粹的前台開發人員,一定會非常喜歡JSON。但是如果你是一個應用開發人員,就不是那麼喜歡了,畢竟 xml才是真正的結構化標記語言,用於進行數據傳遞。
而如果不知道JSON的結構而去解析JSON的話,那簡直是噩夢。費時費力不說,代碼也會變得冗餘拖沓,得到的結果也不盡人意。但是這樣也不影響眾多前台開發人員選擇JSON。因為json.js中的toJSONString()就可以看到 JSON的字符串結構。當然不是使用這個字符串,這樣仍舊是噩夢。常用JSON的人看到這個字符串之後,就對JSON的結構很明了了,就更容易的操作 JSON。
以上是在Javascript中僅對於數據傳遞的xml與JSON的解析。在 Javascript地盤內,JSON畢竟是主場作戰,其優勢當然要遠遠優越於xml。如果JSON中存儲Javascript複合對象,而且不知道其結構的話,我相信很多程序員也一樣是哭着解析JSON的。
◆實例比較
XML和JSON都使用結構化方法來標記數據,下面來做一個簡單的比較。
用XML表示中國部分省市數據如下:
?xml version=”1.0″ encoding=”utf-8″?
country
name中國/name
province
name黑龍江/name
citys
city哈爾濱/city
city大慶/city
/citys
/province
province
name廣東/name
citys
city廣州/city
city深圳/city
city珠海/city
/citys
/province
province
name台灣/name
citys
city台北/city
city高雄/city
/citys
/province
province
name新疆/name
citys
city烏魯木齊/city
/citys
/province
/country
用JSON表示如下:
{
name:”中國”,
province:[
{
name:”黑龍江”,
citys:{
city:[“哈爾濱”,”大慶”]
}
},
{
name:”廣東”,
citys:{
city:[“廣州”,”深圳”,”珠海”]
}
},
{
name:”台灣”,
citys:{
city:[“台北”,”高雄”]
}
},
{
name:”新疆”,
citys:{
city:[“烏魯木齊”]
}
}
]
}
編碼的可讀性,xml有明顯的優勢,畢竟人類的語言更貼近這樣的說明結構。json讀起來更像一個數據塊,讀起來就比較費解了。不過,我們讀起來費解的語言,恰恰是適合機器閱讀,所以通過json的索引.province[0].name就能夠讀取“黑龍江”這個值。編碼的手寫難度來說,xml還是舒服一些,好讀當然就好寫。不過寫出來的字符JSON就明顯少很多。去掉空白製表以及換行的話,JSON就是密密麻麻的有用數據,而xml卻包含很多重複的標記字符。
原創文章,作者:NDRS,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/144200.html