JSON和Protocol Buffers之间是否存在标准映射?

Dan*_*ker 26 json protocol-buffers

来自对公告博客帖子的评论:

关于JSON:JSON的结构类似于协议缓冲区,但协议缓冲区二进制格式仍然更小,编码速度更快.尽管如此,JSON为协议缓冲区提供了一个很好的文本编码 - 编写一个编码器/解码器,使用protobuf反射将任意协议消息转换为JSON和从JSON转换,这是微不足道的.这是与AJAX应用程序通信的好方法,因为用户在访问您的页面时下载完整的protobuf解码器可能太多了.

制作一个映射可能是微不足道的,但两者之间是否有一个"明显"的映射,任何两个独立的开发团队自然会解决这个问题?如果两个产品支持PB数据并且可以互操作,因为它们共享相同的.proto规范,我想知道如果他们独立引入相同规范的JSON反射,他们是否仍然能够互操作.可能会有一些任意的决定,例如,枚举值是由字符串表示的(人类可读的典型JSON)还是整数值?

那么是否存在已建立的映射,以及用于从.proto规范生成JSON编码器/解码器的任何开源实现?

Eri*_*und 8

是的,从 Protocol Buffers 版本 3.0.0(2016 年 7 月 28 日发布)开始,发行说明中提到了“JSON 中定义良好的编码作为二进制原始编码的替代方案”

https://github.com/google/protobuf/releases/tag/v3.0.0


Sta*_*Man 6

从我所看到的,Protostuff是用于Java的任何PB工作的项目,包括基于协议定义将其序列化为JSON.我自己没有用过,只听过好东西.