首頁  >  問答  >  主體

javascript - 经常听到序列化和反序列化,请问这个有什么用?

问题可能文的很泛,因为不了解,所以就这么问了,可以从几个方面解答么。

一个是序列化和反序列化一般用于哪里?
另外一个是如何使用?
使用这个的好处是什么?

高洛峰高洛峰2748 天前1026

全部回覆(17)我來回復

  • 怪我咯

    怪我咯2017-04-11 09:03:54

    你也知道这样的问题很泛。如果我要回答你,肯定会去百度一资资料来,粘贴在这里,哪为何,你自己不去百度呢
    这样的问题 google 和 百度才是最好的老师

    回覆
    0
  • 大家讲道理

    大家讲道理2017-04-11 09:03:54

    最常用的场景,应该就是持久化对像了吧。比如你要把一个对像存进mysql

    回覆
    0
  • PHP中文网

    PHP中文网2017-04-11 09:03:54

    就是你这次创建了个对象,或者数组,
    执行一定的操作之后,你把他存起来,然后方便下次用,你直接拿出来用就行了,
    你像你打游戏,下线了,下次上线接着这次的进度开始玩,不用重新申请帐号,重新升级了;

    还有就是多种语言之间互动,比如你 在外国 饭店 要吃鸡,你说中文他听不懂,
    他能听懂的你不会说,
    你就画了一个鸡,你认识,他也认识,这个画的鸡,就是序列化...

    回覆
    0
  • PHP中文网

    PHP中文网2017-04-11 09:03:54

    简单理解就是计算机之间是通过二进制通信,所以需要把内存中的对象等序列化为二进制数据,接收方再反序列成对象。

    回覆
    0
  • PHP中文网

    PHP中文网2017-04-11 09:03:54

    其实应用场景很简单,你在一端将一个内存对象写入到socket中,接收端接受到之后直接使用这个对象。 前面是序列化,后面是反序列化。 完成这个功能的方式有很多,比如最简单的json格式,httpserver会将自己的数据嵌套起来,并且dump成文json字符串发给浏览器,浏览器js代码接受到数据直接将json转换为js数据结构,将接受到的串透明地转换成对象。

    回覆
    0
  • PHPz

    PHPz2017-04-11 09:03:54

    比如你要用localStorage,要存储的数据是个对象,但是localStorage只能存字符串,你怎么办?办法之一就是将对象序列化为一个json字符串,等你要用localStorage中的数据时,你就可以把其中的json字符串反序列化为js对象后使用,明白吗?

    回覆
    0
  • ringa_lee

    ringa_lee2017-04-11 09:03:54

    问题的根源在于你不懂网络编程!
    无论是进程间、线程间的通讯,网络之间client和server通过socket通讯,还是把对象写到db(实际上也是socket)。
    这些网络交互都是通过收发二进制流的,所以发送时候需要将对象序列化二进制数据发送出去,之后接收端收到二进制数据,再通过反序列化变成对象。
    要搞清楚问题前,先搞清楚自己不懂的是什么

    回覆
    0
  • 巴扎黑

    巴扎黑2017-04-11 09:03:54

    约定如下:如果将协议、格式、规范定义为特殊,将运行时对象定义为通用,那么通用的对象基本都是存储在于交互困难的内存中的,而特殊存在于其他交互方便的(例如java对象在Java生态圈是通用的,json格式在Java生态就是特殊的)。

    由此序列化即“通用”转为“特色”,反之即反序列化。因为序列化也可从内存到硬盘,所以序列化是包括持久化的。

    一般的协议、规范、格式都是对各个生态友好的,普遍用于生态圈之间的数据交互。

    具体的用法不尽相同。

    通常我们说序列化是基于某个语言生态圈的,比如用Java将Java bean对象序列化为xml。而“浏览器将html反序列化为dom对象” “将数据库数据序列化为json”这种说法是省略语言的说法

    回覆
    0
  • 阿神

    阿神2017-04-11 09:03:54

    1. 存储数据

    2. 传输数据

    回覆
    0
  • 大家讲道理

    大家讲道理2017-04-11 09:03:54

    序列化,就是把要用的东西用某种方式存起来,方便日后调用。

    反序列化,就是调用先前序列化存起来的数据

    个人理解(关于序列化与反序列化我只在php类和json数据时用到过…),仅供参考~

    回覆
    0
  • 取消回覆