1什么是序列化赎瑰?
在這里說一下對象序列化機制:該機制中羊瘩,一個對象可以表示為一個字節(jié)序列俩檬,該字節(jié)序列包括該對象的數(shù)據(jù),有關(guān)對象的數(shù)據(jù)類型的信息和存儲在對象中數(shù)據(jù)的類型纲熏。
序列化有什么用呢妆丘?
1、以某種存儲形式使自定義對象持久化局劲。
2飘痛、將對象從一個地方傳遞到另一個地方。
3容握、使程序更具維護性宣脉。
2為什么要用對象序列化?
世間萬物剔氏,都有其存在的原因塑猖。為什么會有對象序列化呢?因為程序猿們需要它谈跛。既然是對象序列化羊苟,那我們就先從一個對象說起:
var json={a=1,b=2}
當這句代碼運行時,對象json的內(nèi)容會存儲在一塊內(nèi)存中感憾,而json本身存儲的只是這塊內(nèi)存的地址的映射而已蜡励。簡單的說,對象json就是我們的程序在電腦通電時在內(nèi)存中維護的一種東西阻桅,如果我們程序停止了或者電腦斷電了凉倚,對象json將不復(fù)存在。那么如何把對象json的內(nèi)容保存在磁盤上呢(也就是說在沒電時繼續(xù)保留著)嫂沉?這時就需要把對象json序列化稽寒,也就是說把json的內(nèi)容轉(zhuǎn)換成一個字符串的形式,然后再保存在磁盤上趟章。另外杏糙,我們又怎么通過HTTP協(xié)議把對象json的內(nèi)容發(fā)送到客戶端呢慎王?沒錯,還是需要先把對象json序列化宏侍,然后客戶端根據(jù)接收到的字符串再反序列化(也就是將字符串還原為對象)解析出相應(yīng)的對象赖淤。這也正是”百度百科—序列化“中描述的兩個作用——存儲、傳輸谅河。
3如何在JS中使用?
JSON.stringify():將json轉(zhuǎn)化成字符串
var json = {a:12,b:5};// ->'{a:12,b:5}'
alert(JSON.stringify(json));
JSON.parse():講字符串轉(zhuǎn)化成json
var str = '{"a":12,"b":"hello"}';
var json = JSON.parse(str);
console.log(json);
除了JSON.parse()之外咱旱,還有兩種方法;
1:eval
var str = '{a:12,b:5}';
var json = eval('('+str+')');
2
var str = '{a:12,b:5}';
var jsonD=new Function('return'+str)();
END!