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. 三种语言相关的序列化格式:

    • Java Object Serialization
    • Python Pickle
    • PHP serialization format
  4. Mongo 引入的 BSON,二进制 JSON。类似的格式(JSON 二进制化)还有:

    • Binn
    • CBOR (rfc8949)
    • Amazon Ion
    • msgpack
    • Smile
    • ubjson。
  5. 也有一些 XML 二进制化的格式(Binary XML),比如:

    • W3C 推荐的 Efficient XML Interchange (EXI)
    • ISO 标准 Fast Infoset。
  6. Apache 基金会的 Avro 和 Parquet。

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

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