很常听到人们说到这个词汇:序列化,我想打代码的应该都认识他把
序列化:序列化 (Serialization)将对象的状态信息转换为可以存储或传输的形式的过程。在序列化期间,对象将其当前状态写入到临时或持久性存储区。以后,可以通过从存储区中读取或反序列化对象的状态,重新创建该对象。
??????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????
就我个人理解,就是将一个文件从磁盘读取出来,放在一个内存中,
==============》
扩展开来,便是,将一个二进制文件,转化为字节流
=============?
最后就是将一个对象,惊奇转化为字节流
使用情况无非两种,不外乎是存储以及传输
个人有个人的理解,看完下面的理解希望你能明白了
以js为例
<body>
<span></span>
<button>click me</button>
<script src="../lib/jquery-2.1.1.min.js"></script>
<script>
var a = $("span");
var b = $("span").text();
//中文(必须加双引号),数字,dom对象,空,undefined,
var myobject = { "char2": "汉字", "char1": 23, "char5": myfunction(), "char3": "" };
var mystrobject = JSON.stringify(myobject);
console.log("原来的东西:")
console.log(myobject);
console.log("序列后");
console.log(mystrobject);
console.log("反序列后");
var myjsonobject = JSON.parse(mystrobject, function(k, v, f) { console.log("当前正在调用parse方法");
console.log(k);
console.log(v);
console.log(f); });
console.log(myjsonobject);
console.log("注意观察char5,以及function")
function myfunction() {}
</script>
</body>
在js中,最常用的是使用json的parse方法,以及stringify了两个方法来回的切换
代码比较简单,而且也有注释,希望大家自己运行看看
为什么要序列化?
当两个进程在进行远程通信时,彼此可以发送各种类型的数据。无论是何种类型的数据,都会以二进制序列的形式在网络上传送。发送方需要把这个对象转换为字节序列,才能在网络上传送;接收方则需要把字节序列再恢复为对象。 把对象转换为字节序列的过程称为对象的序列化。 把字节序列恢复为对象的过程称为对象的反序列化。 说的再直接点,序列化的目的就是为了跨进程传递格式化数据 --------------------百度知道注意点:1. 布尔值、数字、字符串的包装对象在序列化的过程中会自动转换成对应的原始值
undefined、任意函数、symbol值在序列化的过程中会被忽略或被转换成null
2. 代码中的parse方法