於是晚上我乘坐了一輛慢騰騰的公交回到家(周五通常都是很慢),然後給自己找了一大堆關於JSON資料。所以我可以文雅的帶你進入JSON的大門。
這就開始了 …
JavaScript Object Notation.
[一個滑稽的名字。它應該被稱作Lightweight Ecmascript Object Notation, 或簡稱 'LEON'。 ]
JSON是一種傳遞對象的語法,對象可以是name/value對,數組和其他對象。
下面是一小段JSON代碼:
{"skillz": { "web":[ {"name": "html", "years": "5" }, {"name": "css", "years": "3" }], "database":[ {"name": "sql", "years": "7" }] }}
你看懂了吧?那麼當你再看到它時就知道它是JSON了。主要部分:
(如果你跟我一樣老,可以把它想成有層次關系的'.INI'文件)
(如果你是個自以為是的Lisp小丑,可以把它想成”S-expressions”,自以為是吧)
當你寫ajax之類的東西時,如果你使用JSON,你就勉去了手工拼寫XML。更迅速。
同樣,當你寫ajax之類的東西時,怎樣最簡單?XML方式還是JSON方式:
No,嚴格的說,不是。
就像是VB6裡的面向對象一樣。它提供了很好的封裝機制,你可以使用它把數據和方法分離出來,但它不提供任何的繼承,多型,接口,或其它類似的面向對象的東西
很顯然,它是使javascript變得更易於維護,分析和復用的方向上前進了一步。
Thomas Frank寫了一個靈巧的javascript庫,叫做classyJSON,它在JSON代碼上增加了繼承和定義范圍等特征。
是,也不是。在服務器端你可以容易的把對象序列化成JSON或反之。對於.net
,程序員可以使用類似Json.net的類庫使這些操作自動化(我估計是使用反射機制),或你使用自己的程序來做這些事,可能會更快些。
就我所知,JSON是由一個叫做Douglas Crockford的家伙發明的。如果你喜歡的話,可以看一下他的網站,他非常的有趣。
(從Delicious using JSON上搜刮來的!)
我在幾分鐘的時間裡只能整理出這些東西——所有我說的有些東西可能完全是錯的。如果是這樣,請留言告訴我,告訴我我有多傻。我會很高興的糾正任何一個錯誤。祝你好運!
(邊注:如果你把 { 和 } 替換成”<” 和 “/>”,把”:” 換成 “/”… 你會得到一個非常像gaXml的東西。有趣的世界。
(邊注2:Jason 和 Ajax 都是希臘神話中的英雄。預告:另外一些即將出現的技術垃圾包括:Heracles, Perseus, Deucalion, Theseus
and Bellerophon。)