谷歌协议缓冲区vs json vs XML

时间:2012-12-25 06:32:29

标签: xml json protocol-buffers data-serialization

我想了解优点&

的不利之处
  • Google协议缓冲区
  • JS​​ON
  • XML

我想为两个应用程序实现一个通用框架,一个在Perl中,另一个在Java中。因此,想要创建可由两种技术使用的公共服务,即Perl& Co. Java的。

两者都是网络应用程序。

请与我分享您的宝贵意见和帮助;对此的建议。我在谷歌上看过很多链接,但都有不同意见。

1 个答案:

答案 0 :(得分:269)

的Json

  • 人类可读/可编辑
  • 可以在不事先了解架构的情况下进行解析
  • 出色的浏览器支持
  • 比XML简洁

XML

  • 人类可读/可编辑
  • 可以在不事先了解架构的情况下进行解析
  • SOAP等标准
  • 良好的工具支持(xsd,xslt,sax,dom等)
  • 非常详细

的Protobuf

  • 非常密集的数据(小输出)
  • 难以在不知道架构的情况下进行强大的解码(数据格式内部不明确,需要架构澄清)
  • 非常快速的处理
  • 不适合人眼(密集二进制)

大多数平台都有很好的支持。

就个人而言,这些天我很少使用XML。如果消费者是浏览器或公共API,我倾向于使用json。对于内部API,我倾向于使用protobuf来提高性能。提供公共API(通过标题或单独的端点)也很有效。