231

我想知道优缺点

  • Google 协议缓冲区
  • JSON
  • XML

我想为两个应用程序实现一个通用框架,一个在 Perl 中,第二个在 Java 中。因此,想创建可以被两种技术(即 Perl 和 Java)使用的公共服务。

两者都是网络应用程序。

请分享您对此的宝贵想法和建议。我在谷歌上看到了很多链接,但都有不同的意见。

4

1 回答 1

290

json

  • 人类可读/可编辑
  • 无需预先知道模式即可解析
  • 优秀的浏览器支持
  • 比 XML 更简洁

XML

  • 人类可读/可编辑
  • 无需预先知道模式即可解析
  • SOAP等标准
  • 良好的工具支持(xsd、xslt、sax、dom 等)
  • 相当冗长

原型缓冲区

  • 非常密集的数据(小输出)
  • 在不知道架构的情况下很难稳健地解码(数据格式在内部是模棱两可的,需要架构来澄清)
  • 处理速度非常快
  • 不适用于人眼(密集二进制)

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

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

于 2012-12-25T08:37:27.417 回答