我想知道的优点和缺点

谷歌协议缓冲区 JSON XML

我想为两个应用程序实现一个通用框架,一个用Perl,另一个用Java。所以,我想创建一个通用的服务,可以被这两种技术使用,即Perl和Java。

两者都是网络应用程序。

请与我分享你的宝贵意见和建议。我在谷歌上看到了许多链接,但所有人都有不同的看法。


Json

人类可读/可编辑 可以在不事先知道模式的情况下进行解析吗 出色的浏览器支持 比XML更简洁

XML

人类可读/可编辑 可以在不事先知道模式的情况下进行解析吗 SOAP等标准 良好的工具支持(xsd、xslt、sax、dom等) 很详细的

Protobuf

非常密集的数据(小输出) 在不知道模式的情况下很难进行健壮的解码(数据格式在内部是不明确的,需要模式来阐明) 处理速度非常快 不适合人眼(密集二进制)

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

就我个人而言,我现在很少使用XML。如果消费者是浏览器或公共API,我倾向于使用json。对于内部api,我倾向于使用protobuf来提高性能。在公共API上提供两者(通过头文件或单独的端点)也能很好地工作。