-
JSON:
1、JSON是纯文本。
2、JSON具有良好的自我描述性,便于阅读。
优点
1 简单易用开发成本低
2 跨语言
3 轻量级数据交换
4 非冗长性(对比xml标签简单括号闭环)
缺点
1 体积大,影响高并发
2 无版本检查,自己做兼容
3 片段的创建和验证过程比一般的XML复杂
4 缺乏命名空间导致信息混合
总结:最简单最通用的应用协议,使用广泛,开发效率高,性能相对较低,维护成本较高。
如果对性能要求不高,传输数据少,优先选择这个,现在大部分使用的是这个;
-
protobuf:
Protobuf是一种以有效并可扩展的格式编码结构化数据的方式。
- 语言无关、平台无关。即 ProtoBuf 支持 Java、C++、Python 等多种语言,支持多个平台
- 高效。即比 XML 更小(3 ~ 10倍)、更快(20 ~ 100倍)、更为简单
- 扩展性、兼容性好。你可以更新数据结构,而不影响和破坏原有的旧程序
比较强大,如果是大数据,建议使用 protobuf 性比较好,并支持数据流;
缺点:不便于阅读,库相对较大,移动端可以使用 protobuf-lite;
1 二进制格式,可读性差(抓包dump后的数据很难看懂)
2 对象冗余,字段很多,生成的类较大,占用空间。
3 默认不具备动态特性(可以通过动态定义生成消息类型或者动态编译支持)
总结:简单快速上手,高效兼容性强,维护成本较高;不便于阅读,库相对较大,移动端可以使用 protobuf-lite;
-
flatbuf

本文对比了JSON、Protobuf、FlatBuffers和MessagePack四种数据序列化格式的特点与性能。分析了它们各自的优缺点,如JSON的易读性,Protobuf的高效性,FlatBuffers的直接访问能力以及MessagePack的小巧快速。特别强调了不同场景下(如移动端、大数据传输)的最佳选择。

2848

被折叠的 条评论
为什么被折叠?



