json是1年內迅速紅遍全球的東東。
現在解釋JSON是什麼,大家都會說我老土吧,這裡我想分析一下json紅的原因,我們又得到什麼啟示呢。
json是什麼,json.org是一種簡潔有效的資料載體,是一種用字串表示複雜js物件的方式,後端好生成,前端0解釋。
它的風行和一下幾點原因離不開的。
持久化的風潮:
persistence是javaEE5引入的重要模組。
php先天具備持久化特性每個變數都可以serialize()和unserialize()與字串相互轉換。
持久化帶來最直接的好處就是複雜物件儲存和傳輸,衡量持久化機制的優劣的重要標準是效率。
WEB2.0的推動:
Ajax引發了Web2.0革命,其中的x是xml。在ajax中xml是作為前後台資料傳輸的載體的。
隨著Web2.0的大規模應用,xml解釋的效率問題就暴露無疑了,xml是具有非常嚴禁的結構,這造成了任何瀏覽器把xml裝入,解釋成javaScript可以訪問的對象的過程是漫長的。而json是js預設支援的最簡潔物件創建方式,js接收他是輕鬆加愉快的,所以在持久化資料傳輸的舞台上json靠效率取勝。
JSON本身易用:
Ajax為什麼一些老技術結合起來突然火了呢,因為易用。說穿了自從上世紀有了DHTML,無刷新非同步資料傳輸的解決方式絕不隻隻有xmlHttpRequest一家。隱藏的iframe完全可以做到,而且一直也有人這麼幹。 Ajax紅了在於其易用性,所以幾家領軍企業對期的大規模應用引發Web2.0.
JSON同樣易用,會了JSON之後我已經用var obj = {};var arr = [ ]取代了var obj = new Object();var obj = new Array()。 JSON是js中最簡潔的物件定義方式,對於會js,用過eval()的朋友基本上沒有什麼學習成本。
以XML為代表的樹形結構的風靡:
從資料結構的角度看xml的流行,因為xml是一顆樹,樹狀的資料結構在像xml一樣除了本身的內容節點再加上屬性節點之後的威力如何大家都有體會,DOM就是這種結構,UML就是這種結構。
當我們用數據去描述客觀世界的時候發現僅靠關係數據模型中的二維表已顯笨拙,樹形結構是更接近思維的一種,這也是人們在做會議記錄時不在是notepad而使用freemind的原因。同樣使用二維表,記錄parentid的方式儲存樹的效率低下也給了LADP的發展空間。
說回來JSON,他是一種定義JS物件的方式,而JS中的Object是一樹的形式組織的實體,所以JSON定義的物件在描述資料的功能上是足夠的。
再說幾個JSON相關的話題:
JSON是解決xml效率問題的唯一途徑麼?
也不盡然,在本人不知道json之前,在使用div傳輸資料。
後台傳到前台的是xmlHttp.responseText = '