最近更新: 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 。

樂多舊網址: http://blog.roodo.com/rocksaying/archives/2186914.html