js序列化和反序列化的使用講解
(1)序列化
即js中的Object轉(zhuǎn)化為字符串
1.使用obj.toJSONString()
var str=obj.toJSONString(); //將JSON對(duì)象轉(zhuǎn)化為JSON字符
2.使用JSON.stringify(obj)
var str=JSON.stringify(obj); //將JSON對(duì)象轉(zhuǎn)化為JSON字符
(2)反序列化
即js中JSON字符串轉(zhuǎn)化為Object
1.使用eval('('+josnStr+')')
var obj=eval("("+data+")");
為什么要 eval這里要添加 "("+data+");//”呢?
原因在于:eval本身的問(wèn)題。 由于json是以”{}”的方式來(lái)開(kāi)始以及結(jié)束的,在JS中,它會(huì)被當(dāng)成一個(gè)語(yǔ)句塊來(lái)處理,所以必須強(qiáng)制性的將它轉(zhuǎn)換成一種表達(dá)式。
2.使用jsonStr.parseJSON()
var obj = jsonStr.parseJSON(); //由JSON字符串轉(zhuǎn)換為JSON對(duì)象
3.使用parse(jsonStr)
var obj = JSON.parse(data); //由JSON字符串轉(zhuǎn)換為JSON對(duì)象
(3)使用場(chǎng)景
1.向后臺(tái)傳遞參數(shù)、接收后臺(tái)返回值
如果后臺(tái)返回的是一個(gè)String(Object序列化后返回),那么需要在js中使用eval或者parse等轉(zhuǎn)化為Object再使用;
如果返回時(shí)傳遞了類型,比如就是Object,那么直接使用就好
2.在頁(yè)面間傳遞數(shù)據(jù),特別是數(shù)組時(shí)
需要使用序列化,否則IE會(huì)報(bào)錯(cuò):不能執(zhí)行已經(jīng)釋放Script的代碼
3.在進(jìn)行本地存儲(chǔ)時(shí)
存儲(chǔ)在本地window.localStorage.setItem(key,value)存儲(chǔ)的value是json序列化的字符串;獲取得到的window.localSorage.getItem(key)也是json序列化的字符串,需要經(jīng)過(guò)json的反序列化進(jìn)行使用(常見(jiàn)json序列化數(shù)組)
若有不足請(qǐng)多多指教!希望給您帶來(lái)幫助!
總結(jié)
以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,謝謝大家對(duì)腳本之家的支持。如果你想了解更多相關(guān)內(nèi)容請(qǐng)查看下面相關(guān)鏈接
相關(guān)文章
java和javascript獲取word文檔的書(shū)簽位置對(duì)比
這篇文章主要介紹了java和javascript獲取word文檔的書(shū)簽位置代碼對(duì)比,需要的朋友可以參考下2014-06-06原生JS實(shí)現(xiàn)鼠標(biāo)滑動(dòng)撒愛(ài)心特效
這篇文章主要為大家詳細(xì)介紹了原生JS實(shí)現(xiàn)鼠標(biāo)滑動(dòng)撒愛(ài)心特效,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-10-10基于JS實(shí)現(xiàn)禁止查看源碼及獲取鍵盤(pán)的按鍵值
這篇文章主要介紹了基于JS實(shí)現(xiàn)禁止查看源碼及獲取鍵盤(pán)的按鍵值,本文結(jié)合實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-02-02WEB泡泡堂2.0(圖形界面+電腦對(duì)玩)(javascript)
WEB泡泡堂2.0(圖形界面+電腦對(duì)玩)(javascript)2007-01-01js 判斷附件后綴的簡(jiǎn)單實(shí)現(xiàn)方法
下面小編就為大家?guī)?lái)一篇js 判斷附件后綴的簡(jiǎn)單實(shí)現(xiàn)方法。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2016-10-10JavaScript數(shù)組函數(shù)unshift、shift、pop、push使用實(shí)例
這篇文章主要介紹了JavaScript數(shù)組函數(shù)unshift、shift、pop、push使用實(shí)例,本文先是講解了聲明數(shù)組的方法,然后對(duì)4個(gè)函數(shù)使用給出了一些例子,需要的朋友可以參考下2014-08-08p5.js入門(mén)教程之平滑過(guò)渡(Easing)
本篇文章主要介紹了p5.js入門(mén)教程之平滑過(guò)渡(Easing),小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-03-03javascript 函數(shù)聲明與函數(shù)表達(dá)式的區(qū)別介紹
javascript中的函數(shù)聲明與函數(shù)表達(dá)式使用比較頻繁,可能很多的朋友都不知道他們之間的區(qū)別,在此為大家詳細(xì)介紹下,希望對(duì)大家有所幫助2013-10-10