1. 程式人生 > >HTML、XML和JSON的關係

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就是後起之秀,是一種輕量型的資料交換格式,兩個各有優缺點,孰輕孰重還要看具體的應用環境。

  最後,向大家推薦兩個相關的部落格: