序列化就是指將記憶體中的變數轉換為可保存或傳輸的字串的過程;在javascript中,可以使用「JSON.stringify()」方法來實現序列化,這能將JavaScript值轉換為JSON字串。
本教學操作環境:windows7系統、javascript1.8.5版、Dell G3電腦。
所謂序列化,就是將記憶體中的變數轉換為可保存或傳輸的字串的過程。而反序列化就是在適當的時候把這個字串再轉換成原來的變數使用。這兩個過程結合起來可以輕鬆的完成資料的儲存和傳輸操作,使得程式更具維護性。
javascript 序列化
在javascript中,可以使用「JSON.stringify()」方法來實現序列化,它可將JavaScript值轉換為JSON 字串。反序列化就需要使用「JSON.parse()」方法。
語法格式:JSON.stringify(value[, replacer[, space]])
參數說明:
必備, 要轉換的JavaScript 值(通常是物件或陣列)。
可選。用於轉換結果的函數或陣列。
如果 replacer 為函數,則 JSON.stringify 將呼叫該函數,並傳入每個成員的鍵和值。使用傳回值而不是原始值。如果此函數傳回 undefined,則排除成員。根物件的鍵是一個空字串:""。
如果 replacer 是一個數組,則只轉換該數組中具有鍵值的成員。成員的轉換順序與鍵在陣列中的順序一樣。
可選,文字新增縮排、空格和換行符,如果space 是一個數字,則傳回值文字在每個層級縮排指定數目的空格,如果space 大於10,則文字縮排10 個空格。 space 也可以使用非數字,如:\t。
範例:使用 JSON.stringify() 序列化一個物件。
可以看到,在exampleStr和exampleObj2中並沒有 y:undefined 的內容。這說明:JSON的語法是JavaScript語法的子集,它並不能表示JavaScript中的所有值,對於JSON語法不支援的屬性,序列化後會其省略。其詳細規則如下:
①對於JavaScript中的五種原始類型,JSON語法支援數字、字串、布林值、null四種,不支援undefined;
②NaN、Infinity和-Infinity序列化的結果是null;
③JSON語法不支援函數;
④除了RegExp、Error對象,JSON語法支援其他所有物件;
⑤日期對象序列化的結果是ISO格式的字串,但JSON.parse()仍然保留它們字串形態,並不會將其還原為日期物件;
⑥JSON.stringify()只能序列化對象的可列舉的自有屬性;
從上面的例子也可以看到,在符合上述規則的情況下,還可以透過物件序列化和反序列化完成物件的深拷貝。
【推薦學習:javascript進階教學】
#以上是javascript序列化是什麼的詳細內容。更多資訊請關注PHP中文網其他相關文章!