如果你和我一樣,喜歡在自己的項目中使用開源的JavaS
Prototype.JS中提供了對Object對象的toJSON方法,你可以使用Object.toJSON()方法來實現對對象的串行化,例如: 復制JSON文本到剪貼板
代碼:
- de>var cat=
- {
- name:"hellokitty",
- height:"6 apples"
- }
- alert(Object.toJSON(cat));
- //將彈出對話框,內容為 {"name": "hellokitty", "height": "6 apples"}de>
另外,在prototype.JS中還有另外的JSON支持,主要是在Ajax對象中對AJax返回請求中JSON內容的解析。這裡暫時與我們的內容無關,也不再介紹了。在上面我們一起了解了PHP進行對象串行化的方法以及在JavaS
你大致會質疑我為什麼將二者放在一起,因為他們的語法實際是不完全一樣的,然而,在PHP中,可以對JSON文本進行反串行化,也可以將PHP的對象串行化為 JSON而非PHP風格的文本。這主要是靠JSon_decode和JSon_encode兩個函數來完成的,需要特別說明的是,這兩個函數在PHP 5 >= 5.2.0中才被支持,如果你要編寫運行在PHP4環境下的程序,那麼這兩個函數是不可以使用的。
下面兩個例子都基於我們的一個情景假設,即,我們有一個用戶注冊的模塊,這個模塊以“面向對象”的方式工作,在JSon_decode函數實例中,我們在前台將用戶的注冊信息變為一個類的屬性,而後傳遞到後台的PHP文件(這裡為了簡便,就不用AJax了)。
在JSon_encode實例中,我們在 Html文件中引用一個JS文件,地址指向php文件,在PHP文件中輸出JSon編碼後的用戶對象(同樣為了簡便,我們直接生成一個對象而不從數據庫中取信息),並在Html中輸出。
好了,先來看前台的頁面JSon_encode.htm,這個頁面模仿了通常的注冊頁面,在其上面有一個表單,當提交時,觸發JavaS