一尘不染

JSON和协议缓冲区之间是否存在标准映射?

json

公告博客文章的评论中:

关于JSON:JSON的结构类似于协议缓冲区,但是协议缓冲区二进制格式仍然更小且编码更快。但是,JSON为协议缓冲区提供了一种出色的文本编码-
编写编码器/解码器是很简单的,该编码器/解码器使用protobuf反射将任意协议消息与JSON相互转换。这是与AJAX应用程序通信的好方法,因为让用户在访问您的页面时下载完整的protobuf解码器可能太多了。

编写 一个
映射可能是微不足道的,但是在两者之间是否有一个单独的“显而易见的”映射,任何两个独立的开发团队都会自然地解决?如果两个产品支持PB数据并且因为它们共享相同的.proto规范而可以互操作,我想知道如果它们独立地引入相同规范的JSON反射,它们是否仍然可以互操作。可能会做出一些任意决定,例如枚举值应该用字符串(对于人类来说是典型的JSON可读)还是整数值来表示?

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


阅读 277

收藏
2020-07-27

共1个答案

一尘不染

是的,自协议缓冲区版本3.0.0(2016年7月28日发布)以来,存在发行说明中提到的 “ JSON中定义明确的编码,可以替代二进制原型编码”

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

2020-07-27