当前位置: 首页 > 面试题库 >

谷歌协议缓冲区与JSON与XML [关闭]

韩梓
2023-03-14
问题内容

按照目前的情况,这个问题不适合我们的问答形式。我们希望答案会得到事实,参考或专业知识的支持,但是这个问题可能会引起辩论,争论,民意调查或扩展讨论。如果您认为此问题可以解决并且可以重新提出,请访问帮助中心以获取指导。

7年前关闭。

我想知道的优点和缺点

  • Google协议缓冲区
  • JSON格式
  • XML格式

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

两者都是Web应用程序。

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


问题答案:

杰森

  • 可读/可编辑
  • 可以在不事先了解架构的情况下进行解析
  • 出色的浏览器支持
  • 不如XML冗长

XML格式

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

原虫

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

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

就个人而言,这些天我很少使用XML。如果使用者是浏览器或公共API,则倾向于使用json。对于内部API,我倾向于使用protobuf来提高性能。在公共API上同时提供两种功能(通过标头或单独的端点)也可以很好地工作。



 类似资料:
  • 是否有可能解析传入的google协议缓冲区数据报而不使用任何缓冲区。原始文件?我只是现在使用协议缓冲区对其进行了序列化,但不知道IDL文件。 我在寻找一种通过某种反射来迭代任何值的方法?这可能吗? 非常感谢。

  • 是否有一个工具或库可以将PROBUFF对象映射到POJO。我想让pojo实现我无法使用PROBUFF对象实现的其他接口。或者我必须手动执行此转换?

  • 当我尝试编译测试代码时,我收到链接错误。我在windows 7上使用cygwin。初始步骤如./confiure, make, make test 我还能够生成。pb。抄送和。pb。h使用protoc命令。 但当我试图编译测试代码时,它会出现许多链接错误。我确信这些错误是因为它无法链接到库。 Cygwin在/usr/local/lib中有protobuf静态库和链接库。包含文件位于/usr/loc

  • 试图使用Ionic 4中的协议缓冲区进行编码 我已经下载了协议并用它来生成一堆_pb.js文件,每个. proto文件一个。很好。 首先关注原型示例。这是示例代码: 我做了一些更改以匹配我的文件。更改proto文件的名称。但是我的proto文件中没有包名称。所以我只是使用了消息名称。首先这是我的. proto文件的开头: 下面是我修改后的代码: 这似乎不起作用。我的控制台显示: 我相信我已经成功地

  • 问题内容: 我正在使用gSoap将旧式C 系统重构为SOA。我们遇到了一些性能问题(非常大的XML),因此我的领导要我看一下协议缓冲区。我做到了,它看起来非常酷(我们需要C 和Java支持)。但是协议缓冲区是仅用于序列化的解决方案,现在我需要将其发送到Java前端。从C ++和Java角度来看,我应该使用什么来通过HTTP(只是内部网络)发送那些序列化的内容? PS。另一个人试图加速我们的gSoa

  • 两者都是序列化库,由谷歌开发人员开发。他们之间有什么大的区别吗?将使用协议缓冲区的代码转换为使用FlatBuffers需要大量工作吗?