6
A
回答
11
json(通过gson库)和protobuf都可以在platorms之间移植;但
- protobuf的是较小的(带宽)和更便宜的(CPU)读/写
- JSON是人类可读/可编辑的(protobuf的是二进制;硬而不库支持解析)
- protobuf的是微不足道的合并片段 - 只是连接
- json很容易传递给网页客户端
- protobuf的主要java版本需要合同定义(.proto)和代码生成; GSON似乎允许任意POJO使用(有一些关于这些对象的工作protobuf的实现,而不是Java的据我所知)
如果性能是关键:protubuf
对于网页(JavaScript)的使用,或者人类可读:json(可能通过gson)
0
如果你想要效率和跨平台,你应该在包含必要信息和应用程序的应用程序之间发送原始消息。
通过Java自己的机制,gson,protobufs或其他,创建数据不仅包含您希望发送的信息,还包含有关用于表示数据结构的逻辑结构/层次结构的信息你的应用程序中的数据
这使得这些类和数据映射的双重用途,一个用于在应用程序内部表示数据,另外两个用于传输到另一个应用程序。这两个角色可能会相互冲突,开发人员有责任记住他随时将使用的类,集合和数据布局也将被序列化。
相关问题
- 1. 协议缓冲区
- 2. 谷歌协议缓冲区int32 vs int64
- 3. 协议缓冲区vs平坦缓冲区
- 4. 协议缓冲区精简版与常规协议缓冲区
- 5. 扩展协议缓冲区
- 6. 协议缓冲区记录
- 7. 协议缓冲区错误
- 8. 协议缓冲区挑战
- 9. 谷歌协议缓冲区
- 10. Android和协议缓冲区
- 11. JPA协议缓冲区
- 12. Delphi协议缓冲区?
- 13. 谷歌协议缓冲区 -
- 14. 协议缓冲区和Hadoop
- 15. 协议缓冲区文件?
- 16. 协议缓冲区 - @ModelAttribute
- 17. 协议缓冲区扩展
- 18. 如何使用Gson从json构建协议缓冲区消息?
- 19. 协议缓冲区:无固定大小缓冲区的符号?
- 20. 协议缓冲区错误版本
- 21. 协议缓冲区:如何导入?
- 22. 协议缓冲区Wireshark插件
- 23. 公开协议缓冲区接口
- 24. 协议缓冲区:找不到包
- 25. C++ Google协议缓冲区。 RPC如何?
- 26. Java中的扩展协议缓冲区
- 27. 协议缓冲区中的Java HashMap
- 28. 用于VB6的协议缓冲区?
- 29. 如何使用协议缓冲区?
- 30. 谷歌协议缓冲区比较
如果您正在寻找二进制序列化,Apache avro是另一种选择。合同定义(如.proto)是可选的,并带有内置的RPC支持 – 2011-02-13 18:26:07