2006年09月23日

從 XML 產生 JSON 資料及方法的封裝

在「JSON 速寫」中曾介紹過運用 JSON 可以輕巧地達到和 XML 同等的中介資料交換功能。然而 JSON 也和 XML 相同,它們儲存/封裝的只是資料和結構,並不包含操作方法 (method) 。雖然熟悉 JavaScript 的人知道可以直接將 method 定義在 JSON 資料中,且 JavaScript 可以接受。但 JSON 的規範並不允許這樣做,而且也只有 JavaScript 能夠理解定義在 JSON 資料中的 method ,其他程式語言並不能理解 (除非其他程式語言支持以 JavaScript 做為內嵌語言) 。


一般來說, programmer 會為 JSON 資料定義一個額外的 class ,在其中定義 method ,再以 JSON 資料為建構子的初始值,配置實例 (instance) 。在「Generate JSON from XML to use with Ajax」一文中,作者利用 XSLT 將 XML 資料轉成 JSON 資料,並運用 JavaScript 的封裝特性 (See also: 掌握 JavaScript 的「封裝」特性, part 2),以輕巧的方法實現將 method 和 JSON 資料封裝在一起的目的。作者先說明如何撰寫將 XML 轉換成 JSON 的 XSLT 文件。最後運用 JavaScript 的封裝特性,將 method 也寫進 XSLT 文件中,使 XML 資料透過 XLST 文件輸出一份包含類別定義並完成實例配置工作的 JavaScript 文件。

這個實踐方法可以用在 code generater (程式碼產生器) ,但觀其內容,要用在 JavaScript, PHP 等動態語言上才能看出方便性。因為動態語言不需要再經過編譯和安裝動作,就可以直接載入調用。 Server 提供的是 object ,而不再只是 data 。


Posted by shirock at 樂多Roodo! │22:37 │回應(0)引用(1)JavaScript
工具:編輯本文
Ads by Roodo! 

引用URL

http://cgi.blog.roodo.com/trackback/2186914
引用列表:
寫 javascript 對一般的網頁程式設計人員來說, 應該是家常便飯, 舉凡一些需要在 client side 完成的事, 大多會利用 javascript 來操作, 例如滑鼠經過換色, 或是檢查 form (表單)在送出前的一些資料正確性檢查(ps. 一定要記得在 server side 也要再次檢查, 以確保資料的正確性)或方便使用者輸入的自動更正等功能. javascript 的功能強大, 又加上高階, 物件化等特性, 使得撰寫 javascript 的程式設計人員十分愛用, 也方便許多在 ..
有趣的JSON技術【My Program】 at 2006年11月28日 13:56