1什么是序列化?
在这里说一下对象序列化机制:该机制中,一个对象可以表示为一个字节序列,该字节序列包括该对象的数据,有关对象的数据类型的信息和存储在对象中数据的类型。
序列化有什么用呢?
1、以某种存储形式使自定义对象持久化。
2、将对象从一个地方传递到另一个地方。
3、使程序更具维护性。
2为什么要用对象序列化?
世间万物,都有其存在的原因。为什么会有对象序列化呢?因为程序猿们需要它。既然是对象序列化,那我们就先从一个对象说起:
var json={a=1,b=2}
当这句代码运行时,对象json的内容会存储在一块内存中,而json本身存储的只是这块内存的地址的映射而已。简单的说,对象json就是我们的程序在电脑通电时在内存中维护的一种东西,如果我们程序停止了或者电脑断电了,对象json将不复存在。那么如何把对象json的内容保存在磁盘上呢(也就是说在没电时继续保留着)?这时就需要把对象json序列化,也就是说把json的内容转换成一个字符串的形式,然后再保存在磁盘上。另外,我们又怎么通过HTTP协议把对象json的内容发送到客户端呢?没错,还是需要先把对象json序列化,然后客户端根据接收到的字符串再反序列化(也就是将字符串还原为对象)解析出相应的对象。这也正是”百度百科—序列化“中描述的两个作用——存储、传输。
3如何在JS中使用?
JSON.stringify():将json转化成字符串
var json = {a:12,b:5};// ->'{a:12,b:5}'
alert(JSON.stringify(json));
JSON.parse():讲字符串转化成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!