谷歌协议缓冲区VS JSON VS XML
我想知道的优点和缺点
- Google协议缓冲区
- JSON
- XML
我想为两个应用程序实现一个通用框架,一个用Perl,另一个用Java。 所以,想创build可以被Perl和Java两种技术使用的通用服务。
两者都是networking应用程序。
请分享我对此的宝贵意见和build议。 我在谷歌上看到很多链接,但都有不同的看法。
JSON
- 人类可读/可编辑
- 可以在不知道架构的情况下进行parsing
- 出色的浏览器支持
- 不如XML详细
XML
- 人类可读/可编辑
- 可以在不知道架构的情况下进行parsing
- SOAP等标准
- 良好的工具支持(xsd,xslt,sax,dom等)
- 相当详细
的Protobuf
- 非常密集的数据(小输出)
- 在不知道模式的情况下难以稳健地进行解码(数据格式在内部是不明确的,需要模式来澄清)
- 处理速度非常快
- 不打算用于人眼(密集二进制)
在大多数平台上都有很好的支持。
就个人而言,我现在很less使用XML。 如果消费者是浏览器或公共API,我倾向于使用json。 对于内部API,我倾向于使用protobuf来提高性能。 提供公共API(通过头文件或单独的端点)都可以。