1.關于作者
大家好!我是來自深圳技術大學FSR(編者注:FidelityFX Super Resolution超分辨率技術的縮寫)實驗室的同學,標題FFH就是FSRlab For Harmony!并且我也正在參加OpenHarmony成長計劃從論文到開源提交研究,以后我們也會陸續在這個社區記錄學習心得和體會。
在OpenHarmony成長計劃啃論文俱樂部里,FHH小組同學們與華為、軟通動力、潤和軟件、拓維信息、深開鴻等公司一起,學習和研究序列化相關技術…
2. 引言
相信大家不管是在鴻蒙應用開發,web開發或者小程序開發,都會用JSON(編者注:JavaScript Object Notation)或者XML(編者注:Extensible Markup Language 可擴展標記語言)進行數據的傳輸,大家對這兩個技術的使用并不陌生,但是我們往往只是局限在使用上,所以在闡述為什么XML會被JSON取代之前,我想先把這兩個東西的起源和由來都給大家簡單的科普一遍。
3. XML
3.1標記型語言
講XML之前,我們先來了解一下標記型語言,我就用通俗地語言描述一下,比如我現在要寫一篇博客告訴你們為什么XML會被JSON取代,那這篇博客里面會有標題,二級標題,代碼段,高亮文本等等,這些最終都會顯示在網站上。
那么問題來了,瀏覽器怎么知道我顯示地文字是標題還是高亮文本…
于是就有了Markdown這門標記語言,它就是用各種標記符號說明了哪里是標題,哪里是高亮文本。說白了,標記語言就是為了讓冗雜的數據結構化,使用標記語言后,能讓計算機和人能清晰辨別各類數據,如下例子,用#來標記一級標題,``內可以放高亮文本。比如網頁能按照標題,段落,圖片呈現,都得歸功于標記型語言HTML。
# 標題
`高亮文本`
3.2XML起源
最早在1969年,IBM開發了第一種文檔描述語言,用來解決不同系統中文檔格式不同的問題,把這種標記語言稱為通用標記語言GML(Generalized Markup Language),后面這門語言也被不斷改進:
GML(1969)—>SGML(1986 國際標準化組織采納)—>SGML(2018改進并完善)
SGML(編者注:Standard Generalized Markup Language 標準通用標記語言的縮寫)具有相當高的規范性和可擴展性,但是就是因為規范多,導致開發,學習,維護的成本就很高。
到了1989年歐洲粒子物理實驗室的研究員在SGML的基礎上,提出了HTML(編者注:HyperText Markup Language 超文本標記語言的縮寫),一種超文本的標記語言,簡單,通用,語法要求寬松(可以嵌套使用)。
然后隨著Web得發展,傳輸過程中負載的數據量越來越大,如果沒有結構化數據的話,處理傳輸的數據消耗會非常非常大,而且非常麻煩,而HTML重點是對于數據的顯示,不關心所描述的數據結構,缺乏對文檔數據含義的確切描述,不能滿足對各類信息的存儲,傳遞和搜索的需求,基于以上需求,又一次在SGML的基礎之上,簡化出一種規范,1996年,提出了另一種標記型語言命名為XML(可擴展標記語言),就這樣,XML出現了。XHTML(編者注:Extensible HyperText Markup Language 可擴展超文本標記語言的縮寫)是基于XML的一種語法更加嚴格的標記語言。
3.3XML示例
比如A公司要獲取到B公司名字叫Hagon的員工個人信息,這時B公司接受到A公司的請求后,就給A公司傳輸發送了如下XML格式數據:
<title>員工信息title>
<person id="666">
<name>Hagonname>
<age>66<age>
<sex>男sex>
<job>頭鐵前端工程師job>
person>
因為結構清晰,A公司拿到數據后很方便地進行了處理。
3.4XML的瓶頸
雖然XML標準本身簡單,但與XML相關的標準卻種類繁多,W3C制定的相關標準就有二十多個,采用XML制定的重要的電子商務標準就有十多個。
隨著AJax(之前叫XMLHTTP,2005年后才叫Ajax)技術的流行,XML的弊端也越來越顯現:大家都知道XML實現是基于DOM(編者注:Document Object Model 文檔對象模型的縮寫)樹實現的,而DOM在各種瀏覽器中的實現細節不盡相同,所以XML的跨瀏覽器兼容性并不好,所以急需一種新的數據負載格式集成到HTML頁面中以滿足Ajax的要求。
這就到了我們要講的JSON。
4. JSON
4.1JSON的誕生
前面我們說了隨著Ajax的流行,而各種瀏覽器對DOM的實現細節不盡相同,所以會出現兼容性問題,這對前端開發同學來講真的是災難。因為一個功能可能需要用代碼去兼容各種不同的瀏覽器,還要調試,工作量巨大。
但是問題總有辦法能解決,那就利用所有主流瀏覽器中的一種通用組件——JavaScript引擎。這樣只要創造一種JavaScript引擎能識別的數據格式就可以啦!
然后就誕生了JavaScript Object Notation (JSON),它是一種輕量級的、基于文本的、獨立于語言的數據交換格式,它源于ECMAScript編程語言標準。
4.2JSON示例
也是上一個員工信息的例子,用JSON就可以表示為:
{
"title":"員工信息",
"id":666,
"name":"Hagon",
"age":"66",
"sex":"男",
"job":"頭鐵前端工程師"
}
第一點可以看到,可以看到沒有像XML一樣有太多嵌套的標簽,都是以類似鍵值對的形式表示,結構簡單。
第二點,在編寫XML時,第一行需要定義XML的版本,而JSON不存在版本問題,格式永遠不變。
5.XML與JSON的數據對比
說了那么多紙上的白話,接下來用數據說話。
5.1場景介紹
場景由一系列較小的試驗組成,這些試驗根據我們的每一項指標來確定JSON和XML在統計上是否不同。采用均值比較消耗時間檢驗。我們將20000、40000、60000、80000和100000個編碼對象發送到服務器,并收集每種情況的指標。表3、4和5顯示了從這些試驗中獲得的指標。
5.2時間消耗
從下面這張表格上,不難看出XML處理相同數據的時間消耗大約是JSON的30倍。
5.3CPU及內存利用率
下面兩表分別是JSON和XML的CPU和內存利用率數據。
對應的圖形化表達如下:從左到右依次是用戶CPU利用率的平均百分比,系統CPU利用率的平均百分比和內存利用率的平均百分比。
可以看出,Figure3顯示了JSON每次試驗的平均CPU和內存利用率。圖4展示了XML每次試驗的平均CPU和內存利用率。Figure5通過在同一個圖上繪制Figure3和Figure4(方便對比),說明了JSON的資源利用率和XML的資源利用率之間的差異。上圖數據表明,XML使用的用戶CPU利用率整體上明顯低于JSON。JSON和XML編碼的傳輸在服務器上使用的內存量幾乎相同(圖中表面XML內存利用率的淺藍色折線被重疊遮住了)。
5.4總結
在上面的實驗數據可以看到,JSON的性能明顯強于XML。
XML與JSON在web不斷發展且傳輸數據量日益增大的背景下, 在要求算力的時代下,JSON毫無疑問會是更加優秀的一方。并且現在也又很多JSON的解析器,比如Gson,FastJson,Jackson等,這些解析器也在不斷助力JSON的發展。
6.參考文獻
<本文完>
寫在最后
OpenHarmony 成長計劃—“啃論文俱樂部”(以下簡稱“啃論文俱樂部”)是在 2022年 1 月 11 日的一次日常活動中誕生的。截至 3 月 31 日,啃論文俱樂部已有 87 名師生和企業導師參與,目前共有十二個技術方向并行探索,每個方向都有專業的技術老師帶領同學們通過啃綜述論文制定技術地圖,按“降龍十八掌”的學習方法編排技術開發內容,并通過專業推廣培養高校開發者成為軟件技術學術級人才。
啃論文俱樂部的宗旨是希望同學們在開源活動中得到軟件技術能力提升、得到技術寫作能力提升、得到講解技術能力提升。大學一年級新生〇門檻參與,已有俱樂部來自多所高校的大一同學寫出高居榜首的技術文章。
如今,搜索“啃論文”,人們不禁想到、而且看到的都是我們——OpenHarmony 成長計劃—“啃論文俱樂部”的產出。
OpenHarmony開源與開發者成長計劃—“啃論文俱樂部”學習資料合集
1)入門資料:啃論文可以有怎樣的體驗
https://docs.qq.com/slide/DY0RXWElBTVlHaXhi?u=4e311e072cbf4f93968e09c44294987d
2)操作辦法:怎么從啃論文到開源提交以及深度技術文章輸出https://docs.qq.com/slide/DY05kbGtsYVFmcUhU
3)企業/學校/老師/學生為什么要參與 & 啃論文俱樂部的運營辦法https://docs.qq.com/slide/DY2JkS2ZEb2FWckhq
4)往期啃論文俱樂部同學分享會精彩回顧:
同學分享會No1.成長計劃啃論文分享會紀要(2022/02/18)https://docs.qq.com/doc/DY2RZZmVNU2hTQlFY
同學分享會No.2 成長計劃啃論文分享會紀要(2022/03/11)https://docs.qq.com/doc/DUkJ5c2NRd2FRZkhF
同學們分享會No.3 成長計劃啃論文分享會紀要(2022/03/25)
https://docs.qq.com/doc/DUm5pUEF3ck1VcG92?u=4e311e072cbf4f93968e09c44294987d
現在,你是不是也熱血沸騰,摩拳擦掌地準備加入這個俱樂部呢?當然歡迎啦!啃論文俱樂部向任何對開源技術感興趣的大學生開發者敞開大門。
掃碼添加 OpenHarmony 高校小助手,加入“啃論文俱樂部”微信群
后續,我們會在服務中心公眾號陸續分享一些 OpenHarmony 開源與開發者成長計劃—“啃論文俱樂部”學習心得體會和總結資料。記得呼朋引伴來看哦。
原文標題:為什么JSON將逐漸取代XML?
文章出處:【微信公眾號:開源技術服務中心】歡迎添加關注!文章轉載請注明出處。
-
開源技術
+關注
關注
0文章
389瀏覽量
7963 -
OpenHarmony
+關注
關注
25文章
3728瀏覽量
16395
原文標題:為什么JSON將逐漸取代XML?
文章出處:【微信號:開源技術服務中心,微信公眾號:共熵服務中心】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論