JavaScript中沒有直接串行化對象的內置方法,當然你可以自己寫一個,不過我還是強烈推薦你在這裡偷個小懶,使用現成的組件,我們可以轉換和導出對象結構,還可以使用 JSon_encode() 使來自 PHP 數據庫連接的數據可用於 AJax 應用程序。
獲得完畢JSon2.JS文件後,你可以打開這個文件,在文件的前部分包含了相當大量的注釋信息,如果你的英文足夠好,那麼你可以省略我這一節,參考該文件的注釋就可以了,如果作為程序員,你已經看夠了大片的字母。
想看看我的漢字+字母,那你可以向下繼續了。該文件創建了一個包含兩個方法的全局對象JSON,它的方法分別是: 復制內容到剪貼板
代碼:
- de>JSON.stringify(value, whitelist)de>
一個可選的數組參數,用於判定對象值如何被串行化這個方法通過一個JavaScript值來生成JSON文本。在進行串行化時,根據可選的參數whitelist,有三種可能:
如果某個對象有toJSON方法,那麼則調用該方法,toJSON方法的返回值將被串行化。
否則,如果可選參數whitelist是一個數組,那麼數組中的元素將被用來選擇對象進行串行化時的的成員。否則,如果沒有使用whitelist參數,則對象的所有成員將被串行化。如果值沒有JSON的表現形式,例如undefined或者函數,則其不會被串行化。
在對象中,這樣的值會被忽略,而在數組中將會被null替換。JSON.stringify(undefined)會返回undefined。日期將會被串行化為被引用的ISO日期。
代碼:
- de>var text = JSON.stringify(['e', {pluribus: 'unum'}]);
- //text is '["e",{"pluribus":"unum"}]'
- JSON.parse(text, filter)de>
代碼:
- de>//解析文本,如果某個鍵包含字符串“date”,則將其值轉換為日期
- myData = JSON.parse(text, function (key, value) {
- return key.indexOf('date') >= 0 ? new Date(value) : value;});de>