我一直在研究Protobuf/grpc。我真的很喜欢能够使用常见的 *proto文件作为IDL的想法,以集中结构和服务的定义,以及围绕它的所有现有工具,以在不同的编程中为客户端和服务器(GRPC插件)创建常见代码语言。
我不真正喜欢的是,如果强制二进制序列化格式。我希望Protobuf可以选择在JSON或二进制格式之间切换。
我想知道哪种替代方案(如果有)提供了Protobuf/grpc(许多语言,IDL,客户端和服务器的模板代码)的优点,同时仍允许JSON编码。
Protobuf是否可以通过我不知道的某些功能允许JSON?
protobuf不支持这一点。在Java中,您可以将Google的gson
库用于JSON,该库使用反射将任意对象转换为基于成员变量名称的JSON。
ProtoBuf确实支持JSON;请参阅此处:https://developers.google.com/protocol-buffers/docs/proto3#json