温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

序列化与反序列化区别

发布时间:2026-07-24 10:05:13 来源:亿速云 阅读:111 作者:小樊 栏目:编程语言

序列化(Serialization)和反序列化(Deserialization)是数据转换的两个相反过程,核心区别在于方向、目的和作用。


一句话区别

  • 序列化:把对象 → 可存储/可传输的格式(如字节、JSON、XML)
  • 反序列化:把可存储/可传输的格式 → 对象

对比表

对比项 序列化 反序列化
方向 对象 → 数据 数据 → 对象
目的 存储、传输 恢复对象
常见格式 JSON、XML、二进制、Protobuf JSON、XML、二进制、Protobuf
使用场景 网络传输、持久化、缓存 接收数据、读取文件、加载缓存
是否丢失信息 设计良好时不会 依赖序列化数据是否完整

举个简单例子(以 JSON 为例)

1️⃣ 序列化(对象 → JSON)

User user = new User("Tom", 18);
String json = toJson(user);
// {"name":"Tom","age":18}

2️⃣ 反序列化(JSON → 对象)

User user = fromJson(json, User.class);
// 得到一个 User 对象

常见应用场景

✅ 序列化

  • 把对象存到文件、数据库
  • 网络传输(HTTP、RPC、消息队列)
  • Redis / 缓存存储
  • Session 持久化

✅ 反序列化

  • 服务端接收请求数据
  • 从文件、缓存、数据库恢复对象
  • 接口返回结果解析

不同语言中的体现

语言 序列化 反序列化
Java ObjectOutputStream ObjectInputStream
Java(JSON) Jackson / Gson Jackson / Gson
Python pickle / json.dumps pickle / json.loads
JavaScript JSON.stringify JSON.parse

注意事项(很重要)

  • ⚠️ 反序列化可能带来安全风险(如反序列化漏洞)
  • ⚠️ 字段不一致可能导致失败
  • ⚠️ 不同版本对象结构变化要兼容处理

如果你愿意,我也可以:

  • 用 Java / Python / 前端 具体示例讲
  • 讲 为什么反序列化会有安全漏洞
  • 对比 JSON vs 二进制序列化

你更想了解哪一部分?

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI
助
手