02.25 json可以代替xml,為啥網頁不用json格式來寫呢?

DearJackal


樓主可以關注lisp,連鍵值對都沒有,直接就是列表,一門超級強大的編程語言


符號進化


json可以代替xml部分功能,但並不能完全替代。能替代的功能是數據描述,不能替代的是結構描述。關於這一點,我詳細說明一下。

首先請了解一下前端開發或叫網頁開發的內容,包括四部分:

1、結構,即Html,或xml

2、樣式,即Css

3、形為,Javascript

4、數據,xml或json

結構、樣式、形為、數據的概念,大約在2003左右吧(具時間不記得了,反正十幾年前),ECMA就已經提出了。ECMA全稱是中文名稱為歐洲計算機制造商協會,主要是提供一些計算機規範。不過當時的瀏覽器還是IE的天下,微軟牛逼丫根兒不聽他們的。

之後十幾年不斷髮展、完善過程,形成比較成熟的開發思路。

一、先說結構與樣式。

即,採用html描述網頁結構,樣式由css處理,之前Html還有一些屬性例如width,height,等,後來都被棄用,採用css的width或height來設置寬度。這就是結構與樣式的分離。由於Html是基於xml為基礎的,網頁也可以用xml描述結構,例如你自定義一個節點叫weishakeji,css照樣可以給它賦樣式,完全和html一樣。

二、再說結構與形為。

用Html或xml描述的網頁元素,它如何響應鼠標事件或用戶操作呢?這是由Javascript來控制的,雖然我們也可以在Html元素中直接寫Js,例如

但這樣混在一起不好閱讀代碼,一般會分離到單獨的js文件中。

三、再說結構與數據。

用Html或xml描述網頁結構,然後顯示具體的內容時,這些內容可以用XML存放,也可 以用Json存放。如果用xml存放,是可以直接用於網頁顯示的,前面說了,xml直接用於網頁結構描述,css渲染效果。但是它既表示結構,又表示數據,不方便。當然也可以用XSL語言解析xml數據顯示到html中,XSL 指擴展樣式表語言(EXtensible Stylesheet Language)。但是XSL解析效率比較低,語法不友好,難以閱讀,最終沒有流行起來。不過很多瀏覽器都支持,想用也可以。

四、Json與xml

Json是一個單純的數據源,它不能描述網頁結構,這是它不能用來做網頁的重要原因,如果真的用它描述網頁,並不方便,反而會變得繁雜。例如:

內容

如果用Json呢,如果描述上述節點的屬性和內容?還是用Html描述更方便。

Json作為數據源,它的執行效率更高,但它必須依賴於Javascript,因為它本身就是一個Javascript對象,它不是獨立的,它是js!

-----

所以,正常的開發思路是,Html描述網頁結構,CSS渲染頁面效果,Javascript提供交互形為,並讀取和解析Json數據,顯示到Html所描述的某個節點上。

每個都有自己的特點和專長,可以混用,但不可替代。


學習考試系統


json為什麼火,沒搞懂,說可讀性,可理解性,約束性,似乎xml更上乘;說到網絡傳輸節省帶寬又有擴展性,似乎tlv結構更加節省,還支持原生二進制。思來想去,只可能是被web前端帶火的,js腳本語言天生就不是操作二進制的,前後端取個平衡,得,json火了。


玉樹清風



首先了解下什麼是 JSON 和 XML?

Json 是一種輕量級的 數據交換格式 ,Douglas Crockford(Web開發領域最知名的技術權威之一,他是JSON、JSLint、JSMin和ADSafe的創造者)在2001年開始推廣Json,直到2005年~2006年,雅虎和谷歌就開始廣泛的進行使用此格式,因此很快正式成為了主流的數據格式。


XML是一種用於標記電子文件使用其具有結構性的標記語言。那麼什麼是標記語言,是一種將文本及文本相關的其他信息結合起來,展現文檔結構和數據處理細節的電腦文字編碼。製作網頁我們用HTML進行佈局,HTML就是網頁標記語言,屬於XML,是其在網頁領域的應用。


其次分析 JSON 和 XML 的主要區別和應用場景

從概念上來講,JSON 是一種 數據交換形式,XML 是一種 標記語言,用來展現文本信息結構。從中可以看出前者強調的是數據,後者強調的是標記與展現。


在數據應用領域,JSON 和 XML 都可以用於數據傳輸,但是JSON具有良好的可讀和便於快速編寫的特點,可以用於在不同平臺之間進行數據交換,其兼容性高,同時具備多種語言的編寫習慣,比如C, C++, C#, Java, JavaScript, Perl, Python等,因此這些特性讓JSON成為最佳的數據交換語言。在Web Serivice 應用領域中,XML仍有不可動搖的地位,JSON是無法取代的,但是對於大多數Web應用來說,根本不需要複雜的XML來傳輸數據,數據交換格式JSON 提供了更好的簡單性和靈活性,如果使用XML反而增加了解析的複雜度和響應時間。


其次在說網頁應用領域,這是標記語言最擅長乾的啦,因為做網頁就像建房子,你需要用標記語言告訴這房子怎麼建?臥室多大?客廳多大? 臥室放什麼東西,傢俱和電器怎麼擺放之類的,同時裝修時,牆應該刷什麼顏色,是否掛什麼擺件等等,使用標記語言描述這些不僅結構清晰,易讀性強,如果使用JSON,就是一堆晦澀難懂的字符串,看起甭提有多費勁了。用來製作網頁的HTML還有一個特點,能很方便的引入CSS,進行頁面佈局的調整,就好比沙發該怎麼放,牆刷什麼顏色,該鋪什麼底板,引入CSS能讓HTML標記語言更加強大,除此之外,在加上JS,定義用戶與界面的交互行為,這一些成熟工具和架構,讓HTML越發強大,讓其更擅長製作網頁。如果換成JSON去定義,缺乏這些支持,根本無法制作網頁,反而讓工作一團糟。


小節

今天的分享就和大家聊到這裡,關於 JSON 和 XML 區別比較多,這裡只是將主要的重點區別拿出來給大家分享,就好比術業有專攻的道理一樣,各自做擅長的領域即可,沒必要什麼都要去做,反而什麼都做不好。


前端達人


json就一個簡單的鍵值對信息,連做配置文件資格都不夠,還取代xml?樓主新手一枚,要學習的還很多。


風yuanwen


定位完全不同。JSON目標是簡單的對象數據通信,屬於輕量級的數據交換格式,而XML指可擴展的標記語言,能上升到語言的東西,都非常強大,也就是能作為數據通信格式的萬金油,樓主瞭解一下SOAP格式,就知道XML有多複雜了。簡單來說就是小刀削蘋果,大刀砍樹。因為我們平時也就吃吃水果,幾乎不會去砍樹,當然,小刀也能砍樹,就是要累死,大刀削蘋果也一樣的道理。


萬年黑鐵


我們公司前端自己寫的框架,頁面就是用json做的。json上配置指定函數名,然後用angular在js裡寫邏輯。json頁面可以根據數據庫生成,要配什麼查詢條件的話在json裡配置。我也是第一次見這種一臉懵逼


吳雨吳球


xml也不用做網頁佈局。必須用html標記語言才可以。這個是標準。json只是數據結構而已,不能作為直接放網頁用。


宏之博信息技術


1.json只是在某方面上優於xml 比方說數據傳輸他佔了更小的字節 某方面的可讀性優於xml

2.json在前端的角色是替代不了xml的 以xml格式的html不進可讀性要優於json,而且也是一個大的生態環境的基礎,你可以在html裡引入文件 引入標籤 或者利用xml定義標籤 但是用json很難辦到 就算辦到可讀性也遠不如json

3.統一的解析標準 json很靈活 但是太靈活導致沒有一個確切的標準去解析他,但是xml html卻可以 他們有自己的一套標準 而且可以再次基礎上進行擴展 例如解析p標籤 解析div標籤等等

4.大的生態環境,眾多公司基於xml html的開發 生態環境如此 json不會輕易改變的了

5.不同傳輸協議的要求而定


IT興趣聯盟


在高複雜度數據結構上,xml還是比json強n個數量級。。


分享到:


相關文章: