HTML、XML和JSON的關係
{
"people": [
{ "firstName": "Brett", "lastName":"McLaughlin", "email": "aaaa" },
{ "firstName": "Jason", "lastName":"Hunter", "email": "bbbb"},
{ "firstName": "Elliotte", "lastName":"Harold", "email": "cccc" }
]
}
當然,你還可以表示的更復雜一些,例如這樣:
{ "programmers": [ { "firstName": "Brett", "lastName":"McLaughlin", "email": "aaaa" }, { "firstName": "Jason", "lastName":"Hunter", "email": "bbbb" }, { "firstName": "Elliotte", "lastName":"Harold", "email": "cccc" } ], "authors": [ { "firstName": "Isaac", "lastName": "Asimov", "genre": "science fiction" }, { "firstName": "Tad", "lastName": "Williams", "genre": "fantasy" }, { "firstName": "Frank", "lastName": "Peretti", "genre": "christian fiction" } ], "musicians": [ { "firstName": "Eric", "lastName": "Clapton", "instrument": "guitar" }, { "firstName": "Sergei", "lastName": "Rachmaninoff", "instrument": "piano" } ] }
這裡最值得注意的是,能夠表示多個值,每個值進而包含多個值。但是還應該注意,在不同的主條目(programmers、authors 和 musicians)之間,記錄中實際的名稱 / 值對可以不一樣。JSON 是完全動態的,允許在 JSON 結構的中間改變表示資料的方式。在處理 JSON 格式的資料時,沒有需要遵守的預定義的約束。所以,在同樣的資料結構中,可以改變表示資料的方式,甚至可以以不同方式表示同一事物。
看到這裡,大家一定覺得JSON很容易理解吧。為大家提供一個小工具:JSON線上校驗格式化工具bejson,可以自己嘗試著在這裡編寫一寫簡單的JSON。
回到頂部3.2 如何使用JSON?
講了這麼多,大家一定想知道如何來使用JSON,JSON最常用的兩種使用方法分別是JavaScrip(JS)和.Net,詳細地細則請轉至下面的部落格:
當然也可以使用其他途徑來讀取和使用JSON,例如Python等,這個需要我們共同的去學習。
回到頂部3.3 XML和JSON對比
引用網友的一句話,“JSON和XML就像武林界的屠龍刀和倚天劍,那麼他們孰強孰弱?” 那麼大家一定也很想知道,誰才是武林的霸主?下面我們就一起將他們進行一下PK吧。
(1).可讀性方面:JSON和XML的資料可讀性基本相同,JSON和XML的可讀性可謂不相上下,一邊是建議的語法,一邊是規範的標籤形式,XML可讀性較好些。
(2).可擴充套件性方面:XML天生有很好的擴充套件性,JSON當然也有,沒有什麼是XML能擴充套件,JSON不能的。
(3).編碼難度方面:XML有豐富的編碼工具,比如Dom4j、JDom等,JSON也有json.org提供的工具,但是JSON的編碼明顯比XML容易許多,即使不借助工具也能寫出JSON的程式碼,可是要寫好XML就不太容易了。
(4).解碼難度方面:XML的解析得考慮子節點父節點,讓人頭昏眼花,而JSON的解析難度幾乎為0。這一點XML輸的真是沒話說。
(5).流行度方面:XML已經被業界廣泛的使用,而JSON才剛剛開始,但是在Ajax這個特定的領域,未來的發展一定是XML讓位於JSON。到時Ajax應該變成Ajaj(Asynchronous Javascript and JSON)了。
(6).解析手段方面:JSON和XML同樣擁有豐富的解析手段。
(7).資料體積方面:JSON相對於XML來講,資料的體積小,傳遞的速度更快些。
(8).資料互動方面:JSON與JavaScript的互動更加方便,更容易解析處理,更好的資料互動。
(9).資料描述方面:SON對資料的描述性比XML較差。
(10).傳輸速度方面:JSON的速度要遠遠快於XML。
為了突出展示一下兩者的對比,舉一個經典的例子:
用XML表示中國部分省市資料如下:
<?xml version="1.0" encoding="utf-8"?> <country> <name>中國</name> <province> <name>黑龍江</name> <cities> <city>哈爾濱</city> <city>大慶</city> </cities> </province> <province> <name>廣東</name> <cities> <city>廣州</city> <city>深圳</city> <city>珠海</city> </cities> </province> <province> <name>臺灣</name> <cities> <city>臺北</city> <city>高雄</city> </cities> </province> <province> <name>新疆</name> <cities> <city>烏魯木齊</city> </cities> </province> </country>
用JSON表示:
{ "name":"中國", "province":[ { "name":"黑龍江", "cities":{ "city":["哈爾濱","大慶"] } }, { "name":"廣東", "cities":{ "city":["廣州","深圳","珠海"] } }, { "name":"臺灣", "cities":{ "city":["臺北","高雄"] } }, { "name":"新疆", "cities":{ "city":["烏魯木齊"] } } ] }
講了這麼多,大家也肯定是凌亂了,不光是你們,就是我也記不住這麼多的內容。其實,總結一點就是:XML更像是資料傳輸界的長老,相對於JSON而言是一種重量型的資料交換格式;而JSON就是後起之秀,是一種輕量型的資料交換格式,兩個各有優缺點,孰輕孰重還要看具體的應用環境。
最後,向大家推薦兩個相關的部落格: