序列化(Serialization)和反序列化(Deserialization)是数据转换的两个相反过程,核心区别在于方向、目的和作用。
| 对比项 | 序列化 | 反序列化 |
|---|---|---|
| 方向 | 对象 → 数据 | 数据 → 对象 |
| 目的 | 存储、传输 | 恢复对象 |
| 常见格式 | JSON、XML、二进制、Protobuf | JSON、XML、二进制、Protobuf |
| 使用场景 | 网络传输、持久化、缓存 | 接收数据、读取文件、加载缓存 |
| 是否丢失信息 | 设计良好时不会 | 依赖序列化数据是否完整 |
User user = new User("Tom", 18);
String json = toJson(user);
// {"name":"Tom","age":18}
User user = fromJson(json, User.class);
// 得到一个 User 对象
| 语言 | 序列化 | 反序列化 |
|---|---|---|
| Java | ObjectOutputStream |
ObjectInputStream |
| Java(JSON) | Jackson / Gson | Jackson / Gson |
| Python | pickle / json.dumps |
pickle / json.loads |
| JavaScript | JSON.stringify |
JSON.parse |
如果你愿意,我也可以:
你更想了解哪一部分?
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。