跳转至

引言

数字和字符都可以通过编码直接转为二进制,而结构体则需要序列化

  • 序列化(Serialization)就是将数据结构或对象转换为一种标准化的格式,比如 JSON、YAML、XML、二进制等,以便于存储或传输,通常涉及写操作。
  • 反序列化(Deserialization)将存储或传输的格式恢复成原始数据结构或对象的过程,通常涉及读操作。

20240607200718

以 Json 反序列化为例,从文件对象反序列化,使用 load(),从字符串对象反序列化使用 loads()

Protobuf

Protobuf 是 Google 开发的一种高性能的数据序列化协议,数据以紧凑的二进制编码,比 JSON/XML 等文本格式体积更小(节省 3~10 倍空间),速度比 JSON 快 5~100 倍

二进制数据必须配合预定义的 Schema 解析,需提前编写 .proto 文件,灵活性不如 JSON,且非人类可读

通常用于追求高性能的场景,比如微服务(gRPC 默认使用 Protobuf 传输数据),存储日志/数据(如 Kafka 消息、Redis 数据库缓存)