從結構上看,所有的數據最終都可以分成三種類型:
第一種類型是scalar(標量),也就是一個單獨的string(字符串)或數字(numbers),比如“北京”這個單獨的詞。
第二種類型是sequence(序列),也就是若干個相關的數據按照一定順序并列在一起,又叫做array(數組)或List(列表),比如“北京,東京”。
第三種類型是mapping(映射),也就是一個名/值對(Name/value),即數據有一個名稱,還有一個與之相對應的值,這又稱作hash(散列)或dictionary(字典),比如“首都:北京”。
Json的規格非常簡單,只用一個頁面、幾百個字就能說清楚,而且Douglas Crockford聲稱這個規格永遠不必升級,因為該規定的都規定了。
1) 并列的數據之間用逗號(“,”)分隔。
2) 映射用冒號(“:”)表示。
3) 并列數據的集合(數組)用方括號("[]")表示。
4) 映射的集合(對象)用大括號(“{}”)表示。
上面四條規則,就是Json格式的所有內容。
我還記得,在學習javascript的時候,我一度搞不清楚“數組”(array)和“對象”(object)的根本區別在哪里,兩者都可以用來表示數據的集合。
比如有一個數組a=[1,2,3,4],還有一個對象a={0:1,1:2,2:3,3:4},然后你運行alert(a[1]),兩種情況下的運行結果是相同的!這就是說,數據集合既可以用數組表示,也可以用對象表示,那么我到底該用哪一種呢?
我后來才知道,數組表示有序數據的集合,而對象表示無序數據的集合。如果數據的順序很重要,就用數組,否則就用對象。
鏈接:
http://www.ruanyifeng.com/blog/2009/05/data_types_and_json.html