Protocol Buffer, JSON, XML之对比
转载并翻译自溢栈Stackoveflow
作者是Marc Gravell
JSON
- 人类可读写
- 解析时不需要知道范式
- 浏览器支持极佳
- 不像XML那么累赘
XML
- 人类可读写
- 解析时不需要知道范式
- SOAP等的标准
- 工具支持好(xsd、xslt、sax、dom等)
- 超累赘
protobuf
- 数据很密(输出少)
- 不知道范式很难解析(数据格式内部是模糊的,需要范式去明确)
- 处理极快
- 不是为人眼阅读准备的(高密度二进制)
以上在大多数平台都有很好的支持。
个人来说,我现在几乎不用XML了。如果消费方是浏览器或者公共API我倾向于用JSON。内部API,由于性能原因我倾向于用protobuf。公共API两个都提供也可以(通过headers或者独立的endpoints)