gson vs协议缓冲区

use*_*431 6 protocol-buffers gson

协议缓冲区(protobuf)优于GSON的优缺点是什么?

在什么情况下protobuf比GSON更合适?

对于一个非常通用的问题我很抱歉.

Mar*_*ell 12

json(通过gson库)和protobuf都可以在平台之间移植; 但

  • protobuf更小(带宽)和更便宜(CPU)读/写
  • json是人类可读/可编辑的(protobuf是二进制的;没有库支持很难解析)
  • protobuf很容易合并片段 - 只是连接
  • json很容易传递给网页客户端
  • protobuf的主要java版本需要契约定义(.proto)和代码生成; gson似乎允许任意pojo使用(有protobuf实现可以处理这些对象,但不适用于java afaik)

如果表现是关键:protubuf

用于网页(JavaScript)或人类可读:json(也许通过gson)