TOC

数据序列化格式

文本类型

最常见的文本类型数据序列化格式要数 JSON 和 XML 了。

早年间,知名的 RPC 规范 SOAP,XML-RPC 就是定义在 XML 的基础之上。
后来,随着 Web 的流行,JSON 使用得越来越多,基于 JSON 的 RPC 也开始出现。
但是最后 RPC 整体衰弱下来,终究没有抵过 HTTP API 的趋势。大部分 HTTP API 都是基于 JSON,少部分基于 XML。

苹果公司的 plist (Property list) 格式也是基于 XML。

除了 JSON 和 XML 之外,其他常见的文本类型数据序列化格式还有:CSV,YAML。

二进制类型

  1. ASN.1 参考 2020/01/31, ASN.1

  2. D-BUS

  3. 三种语言相关的序列化格式:

  4. Java Object Serialization

  5. Python Pickle
  6. PHP serialization format

  7. Mongo 引入的 BSON,二进制 JSON。类似的格式(JSON 二进制化)还有:

  8. Binn

  9. CBOR (rfc8949)
  10. Amazon Ion
  11. msgpack
  12. Smile
  13. ubjson。

  14. 也有一些 XML 二进制化的格式(Binary XML),比如:

  15. W3C 推荐的 Efficient XML Interchange (EXI)

  16. ISO 标准 Fast Infoset。

  17. Apache 基金会的 Avro 和 Parquet。

  18. 近些年,随着微服务的流行,RPC 重新席卷而来。一般都是采用二进制的数据格式。
    二进制的编码效率更高,可视化(转换成文本)的问题可以通过网关来提供。

Google 公司的 Protocol Buffers (protobuf) 和 FlatBuffers
Apache Thrift 也有自己独创的序列化格式(同名)。