一、JSON
JSON的全稱是 JavaScript Object Notation (JS對象標記),是一種輕量級的數據交換格式。經常用在前臺和後端做信息交互。
其採用完全獨立於編程語言的文本格式來存儲和表示數據。簡潔和清晰的層次結構使得 JSON 成爲理想的數據交換語言。 易於人閱讀和編寫,同時也易於機器解析和生成,並有效地提升網絡傳輸效率。json只是字符串!
語法
鍵值對:{"鍵":"值"}
- 對象表示爲鍵值對
- 多個數據之間用逗號分隔,
- 花括號保存對象{}
- 方括號保存數組[]
2、XML
可擴展標記語言
3、JSON和XML的比較
舉一個同樣的例子,看看在不同的方式下面,實現方式有何不同。
同樣的例子之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": [
"烏魯木齊"
]
}
}
]
}
由上可見,JSON的表達方式比xml簡潔很多。最重要的是,JSON沒有了專門的DOM解析。JSON中的數據只要符合JavaScript的聲明規範,JavaScrip就會自動解析。Ajax中使用JSON的基本方法是,前臺載入後臺聲明的Javascript對象的字符串。然後,用eval()方法來將它轉爲實際的對象,最後通過 DHTML更新頁面信息。json的優點:
1、JSON不僅減少了解析XML解析帶來的性能問題和兼容性問題;而且對於Javascript來說非常容易使用,json可以很方便的通過遍歷數組,以及訪問對象屬性來獲取數據。
2、其可讀性也不錯,基本具備了結構化數據的性質。
3、JSON的另外一個優勢是"跨域性",大部分的編程語言都支持json,從而可以在不同平臺間進行數據交換。
2、其可讀性也不錯,基本具備了結構化數據的性質。
3、JSON的另外一個優勢是"跨域性",大部分的編程語言都支持json,從而可以在不同平臺間進行數據交換。
JSON 和 XML 優缺點的比較
1. 在可讀性方面,JSON和XML的可讀性不相上下,一邊是建議的語法,一邊是規範的標籤形式
2. 在可擴展性方面,XML天生有很好的擴展性,JSON當然也有,沒有什麼是XML能擴展,JSON不能的。3. 在編碼難度方面,XML有豐富的編碼工具,比如Dom4j、JDom等,JSON也有json.org提供的工具,但是JSON的編碼明顯比XML容易許多,即使不借助工具也能寫出JSON的代碼,可是要寫好XML就不太容易了。
4. 在解碼難度方面,XML的解析得考慮子節點父節點,讓人頭昏眼花,而JSON的解析難度幾乎爲0。
5. 在流行度方面,XML已經被業界廣泛的使用,而JSON纔剛剛開始,但是在Ajax這個特定的領域,未來的發展一定是XML讓位於JSON。到時Ajax應該變成Ajaj(AsynchronousJavascript and JSON)了。
6. JSON和XML同樣擁有豐富的解析手段。
7. JSON相對於XML來講,數據的體積小。
8. JSON與JavaScript的交互更加方便。
9. JSON對數據的描述性比XML較差。
10. JSON的速度要遠遠快於XML。
JSON | XML | |
---|---|---|
可讀性 | 建議的語法 | 規範的標籤 |