序列化(Serialization)详解:从对象到可传输格式 (译)编程概念

📅 发布时间:2026/10/15 15:09:08
序列化(Serialization)详解:从对象到可传输格式 (译)编程概念
什么是序列化序列化Serialization是指将对象object或数据结构data structure转换为一种适合在网络中传输或存储例如在数组缓冲区array buffer或文件格式中的格式的过程。简单来说就是把内存中的“活”数据变成可以“打包带走”的静态字节流。在 JavaScript 中一个典型的例子是你可以通过调用JSON.stringify()函数将一个对象序列化为 JSON 字符串。同样CSS 样式值也可以通过调用CSSStyleDeclaration.getPropertyValue()函数进行序列化从而获取其字符串表示形式。为什么需要序列化序列化的核心价值在于“跨域”与“跨时”。它解决了两个关键问题网络传输当数据需要从一个进程发送到另一个进程例如从浏览器到服务器或者通过 HTTP 协议传递时必须先将对象转换为文本或二进制格式才能放入网络包中。持久化存储当需要将数据保存到磁盘如文件、数据库时序列化后的格式可以保证数据在程序重启后仍然能够被恢复。没有序列化对象只能存在于内存中无法被外部系统识别或复用。常见序列化格式与工具除了 JSON常见的序列化格式还包括 XML、YAML、Protocol Buffersprotobuf等。每种格式都有其适用场景JSON轻量、易读是 Web API 中最常用的数据交换格式。XML结构严谨支持命名空间常用于配置文件或文档标记。Protocol Buffers二进制格式体积小、解析快适合高性能 RPC 场景。在 JavaScript 生态中JSON.stringify()是最直接的序列化入口而在 CSS 中getPropertyValue()则负责将计算后的样式值序列化为字符串。序列化的反过程反序列化与序列化相对的是反序列化Deserialization即将序列化后的格式重新还原为对象或数据结构。例如JSON.parse()可以将 JSON 字符串还原为 JavaScript 对象。两者通常成对出现构成完整的数据生命周期。理解序列化有助于你更好地设计 API 接口、处理缓存、以及调试网络请求中的数据格式。译文来源MDN SerializationCC BY-SA 2.5 (MDN)由本人翻译整理转载请注明出处。