讓我們開始這個新概念的旅程,串行化這個話題可能大家以前都沒有多加關注,事情其實起源於那天我隨便翻翻PHP手冊,發現這個串行化的函數,之後閒來無聊又做一個JSON數組格式的插件,這個時候順便用了一下串行化,發現在某些場合的確非常方便。
先來解釋下串行化:簡單來說,串行化即將變量轉換成字節流的過程。串行化的提出,有效的解決了對象的保存和傳輸的問題,舉例來說,我在JavaScript中建立了一個對象,我現在想將這個對象保存到服務器端的數據庫中,那麼我如何進行操作呢,這個時候往往就用到了對象的串行化。
在JavaScript的串行化中不得不提JSON數組格式,JSON(Javascript Object Notation) 是一種輕量級的數據交換格式。易於人閱讀和編寫,同時也易於機器解析和生成。它基於JavaScript Programming Language,JSON數組格式一個子集。 JSON采用完全獨立於語言的文本格式,但是也使用了類似於C語言家族的習慣(包括C, C++, C#, Java, JavaScript, Perl, Python等)。這些特性使JSON成為理想的數據交換語言。
人們通常將JSON和JSON數組格式進行比較,二者都是將對象扁平化(稍後我們解釋這個“扁平化”)的一種手段,XML的特點是結構嚴謹,而JSON的特點則是簡單易讀、容易使用程序進行分析,因為它能夠很簡單的將一個對象轉換為一個字符流的形式,例如如下代碼:
- {"type":"human","name":"hanguofeng","age":22}
則是一個JSON表達式,他保存了一個對象,我們如何將它恢復為對象呢?很簡單,如下:
- var animal_str = '{"type":"human","name":"hanguofeng","age":22}';
- var animal2=eval('(' + animal_str + ')');
我們通過JavaScript的求值函數,將JSON表達式進行運算,並返回值,用以獲得一個對象,到這裡,我想你一定會和我一樣,對JSON格式的創造者的思維佩服不已吧。本來說講串行化的,“不小心”談到JSON數組格式,並且講了這麼多,呵呵,跑題了嗎?沒有,PHP的串行化和JSON是非常像的,一個PHP的串行化表達式如下:
- array
- (
- "type" => "human",
- "name" => "hanguofeng",
- "age" => "20"
- );