通用基础:序列化与反序列化

很常听到人们说到这个词汇:序列化,我想打代码的应该都认识他把


序列化:序列化 (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方法

基础很重要,要打好

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值