# 数据序列化方案全维度对比
| 格式 | 类型 | 优势 | 劣势 | Unity 典型应用场景 |
|---|---|---|---|---|
| Protobuf | 二进制 | 极小、极快。强类型安全,支持版本兼容。 | 不可读,修改需重新编译生成的类。 | 实时同步、RPC 通信、大型存档。 |
| JSON | 文本 | 通用性强,易读易写。支持动态解析。 | 体积大,解析速度中等。无类型约束。 | Web 接口 (REST)、简单配置、小存档。 |
| BSON | 二进制 | JSON 的二进制版,支持更多数据类型(如位图)。 | 比 JSON 快但比 Protobuf 慢,且体积不一定小。 | MongoDB 交互、需要二进制嵌套的配置。 |
| YAML | 文本 | 易读写,支持注释、多行字符串。 | 解析复杂且慢,对缩进极其敏感。 | Unity 引擎资源文件 (.asset/.prefab)。 |
| XML | 文本 | 结构严谨,支持 Schema 校验,适合大型文档。 | 比较臃肿,解析效率低 | xaml |
| INI | 文本 | 极其简单,几乎没有学习成本。 | 只能表达简单的键值对,不支持嵌套。 | 编辑器简单插件配置、基础启动项。 |
体积(从小到大):
Protobuf<BSON<JSON<YAML<XML解析速度(从快到慢):
Protobuf>JSON (Native)>BSON>XML>YAML可读/可编辑性(从强到弱):
YAML>JSON>XML>INI>Protobuf(不可读)