(1)序列化
即js中的Object轉化為字符串
1.使用obj.toJSONString()
var str=obj.toJSONString(); //將JSON對象轉化為JSON字符
2.使用JSON.stringify(obj)
var str=JSON.stringify(obj); //將JSON對象轉化為JSON字符
(2)反序列化
即js中JSON字符串轉化為Object
1.使用eval('('+josnStr+')')
var obj=eval("("+data+")");
為什么要 eval這里要添加 "("+data+");//”呢?
原因在于:eval本身的問題。 由于json是以”{}”的方式來開始以及結束的,在JS中,它會被當成一個語句塊來處理,所以必須強制性的將它轉換成一種表達式。
2.使用jsonStr.parseJSON()
?var obj = jsonStr.parseJSON(); //由JSON字符串轉換為JSON對象
3.使用parse(jsonStr)
var obj = JSON.parse(data); //由JSON字符串轉換為JSON對象
(3)使用場景
1.向后臺傳遞參數、接收后臺返回值
如果后臺返回的是一個String(Object序列化后返回),那么需要在js中使用eval或者parse等轉化為Object再使用;
如果返回時傳遞了類型,比如就是Object,那么直接使用就好
2.在頁面間傳遞數據,特別是數組時
需要使用序列化,否則IE會報錯:不能執行已經釋放Script的代碼
3.在進行本地存儲時
存儲在本地window.localStorage.setItem(key,value)存儲的value是json序列化的字符串;獲取得到的window.localSorage.getItem(key)也是json序列化的字符串,需要經過json的反序列化進行使用(常見json序列化數組)
若有不足請多多指教!希望給您帶來幫助!
總結
以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,謝謝大家對VeVb武林網的支持。
新聞熱點
疑難解答