js的序列化和反序列化:序列化後得到的是string對象,如果想得到裏面的值,必須先反序列化纔行

js的序列化和反序列化

 

遇到的問題。打印的user得到的是序列化後的string對象

如果我想要得到裏面的id。必須先反序列化纔行

 

 

成功!

 

 


 使用場景

               1.向後臺傳遞參數、接收後臺返回值

                  如果後臺返回的是一個String(Object序列化後返回),那麼需要在js中使用eval或者parse等轉化爲Object再使用;

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

               2.在頁面間傳遞數據,特別是數組時

                   需要使用序列化,否則IE會報錯:不能執行已經釋放Script的代碼

(1)序列化
 即js中的Object轉化爲字符串

1.使用toJSONString

var last = obj.toJSONString();  //將JSON對象轉化爲JSON字符  

2.使用stringify

var last = JSON.stringify(obj);  //將JSON對象轉化爲JSON字符  


(2)反序列化

即js中JSON字符串轉化爲Object

1.使用eval

var obj = eval("(" + data + ")");         
爲什麼要eval這裏要添加"(" + data + ");//”呢? 
原因在於:eval本身的問題。 由於json是以”{}”的方式來開始以及結束的,在JS中,它會被當成一個語句塊來處理,所以必須強制性的將它轉換成一種表達式。

2.使用parseJSON

var obj = data.parseJSON(); //由JSON字符串轉換爲JSON對象  

3.使用parse

var obj = JSON.parse(data); //由JSON字符串轉換爲JSON對象  

 

參考:

https://www.cnblogs.com/fengff/p/8073967.html

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章