1. 程式人生 > >js--序列化和反序列化

js--序列化和反序列化

(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的程式碼

若有不足請多多指教!希望給您帶來幫助!