溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

如何在JavaScript中使用序列化和反序列化

發(fā)布時間:2021-03-25 16:38:28 來源:億速云 閱讀:324 作者:Leah 欄目:web開發(fā)

這期內(nèi)容當(dāng)中小編將會給大家?guī)碛嘘P(guān)如何在JavaScript中使用序列化和反序列化,文章內(nèi)容豐富且以專業(yè)的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。

(1)序列化

即js中的Object轉(zhuǎn)化為字符串

1.使用obj.toJSONString()

var str=obj.toJSONString(); //將JSON對象轉(zhuǎn)化為JSON字符

2.使用JSON.stringify(obj)

var str=JSON.stringify(obj); //將JSON對象轉(zhuǎn)化為JSON字符

(2)反序列化

即js中JSON字符串轉(zhuǎn)化為Object

1.使用eval('('+josnStr+')')

var obj=eval("("+data+")");

為什么要 eval這里要添加 "("+data+");//”呢?

原因在于:eval本身的問題。 由于json是以”{}”的方式來開始以及結(jié)束的,在JS中,它會被當(dāng)成一個語句塊來處理,所以必須強制性的將它轉(zhuǎn)換成一種表達(dá)式。

2.使用jsonStr.parseJSON()

var obj = jsonStr.parseJSON(); //由JSON字符串轉(zhuǎn)換為JSON對象

3.使用parse(jsonStr)

var obj = JSON.parse(data); //由JSON字符串轉(zhuǎn)換為JSON對象

(3)使用場景

1.向后臺傳遞參數(shù)、接收后臺返回值

  如果后臺返回的是一個String(Object序列化后返回),那么需要在js中使用eval或者parse等轉(zhuǎn)化為Object再使用;

  如果返回時傳遞了類型,比如就是Object,那么直接使用就好

2.在頁面間傳遞數(shù)據(jù),特別是數(shù)組時

  需要使用序列化,否則IE會報錯:不能執(zhí)行已經(jīng)釋放Script的代碼

3.在進(jìn)行本地存儲時

  存儲在本地window.localStorage.setItem(key,value)存儲的value是json序列化的字符串;獲取得到的window.localSorage.getItem(key)也是json序列化的字符串,需要經(jīng)過json的反序列化進(jìn)行使用(常見json序列化數(shù)組)

上述就是小編為大家分享的如何在JavaScript中使用序列化和反序列化了,如果剛好有類似的疑惑,不妨參照上述分析進(jìn)行理解。如果想知道更多相關(guān)知識,歡迎關(guān)注億速云行業(yè)資訊頻道。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI