xml 和 json 的區別以及兩者聯繫

xml:
1、擴展標記語言 (Extensible Markup Language, XML) ,用於標記電子文件使其具有結構性的標記語言,可以用來標記數據、定義數據類型,
2.是一種允許用戶對自己的標記語言進行定義的源語言。 
3.XML是使用DTD(document type definition)文檔類型定義來組織數據;格式統一,跨平臺和語言,早已成爲業界公認的標準。
4.XML是標準通用標記語言 (SGML) 的子集,非常適合 Web 傳輸。XML 提供統一的方法來描述和交換獨立於應用程序或供應商的結構化數據。
xml 和 json 的區別 :    
1.可讀性方面:基本相同,相對json來說xml可讀性較好

2.可擴展方面:兩者都具有良好的擴展性

3.編碼難度方面:相對而言,json的編碼較爲容易

4.解碼方面:json的話一個json_decode()函數就搞定啦,xml需要考慮子節點 and 父節點

5.數據體積方面:JSON相對於XML來講,數據體積小,傳遞的速度比較快;

6.數據交互方面:JSON與javascript的交互更加方便,更容易解析處理,更好的數據交互;

7.數據描述方面:XML對數據描述性比較好;

8.傳輸速度方面:JSON的速度遠遠快於XML。

xml及json實現的底層原理:
       XML和JSON都使用結構化方法來標記數據

  1. JSON底層原理:遍歷字符串中的字符,最終根據格式規定的特殊字符,比如{}、[]、:等進行區分,{}號表示字典,[]號表示數組,:號是字典的鍵和值的分水嶺,最終仍是將JSON轉化爲字典,只不過字典中的值可能是“字典、數組或者字符串而已”。

  2. XML底層原理:XML解析常用的解析方法有兩種:DOM解析和SAX解析;DOM採用的是樹形結構的方式訪問XML文檔,而SAX採用的是事件模型;DOM解析把XML文檔轉化爲一個包含其內容的樹,並可以對樹進行遍歷,使用DOM解析器的時候需要處理整個XML文檔,所以對內存和性能的要求比較高;SAX在解析XML文檔的時候可以觸發一系列的事件,當發現給定的tag的時候,他可以激活一個回調方法,告訴該方法指定的標籤已經找到,SAX對內存的要求通常會比較低,因爲他讓開發人員自己來決定所要處理的tag,特別是當開發人員只需要處理文檔中所包含部分數據時,SAX這種擴展能力得到了更好的體現。



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章