Protobuf 转 JSON 工具 - 在线 Proto 定义解析与数据互转 - 五岁小孩

加载中...

Protobuf 转 JSON

Proto 定义
0 字符 | 0
JSON 输出
0 字符 | 0

功能说明

Proto → JSON:粘贴 .proto 定义文件,自动解析所有 Message 结构并生成对应的 JSON 模板数据(含默认值),方便快速创建测试数据

JSON → Protobuf 编码:根据 Proto 定义将 JSON 数据编码为 Protobuf 二进制格式(Base64 输出),可用于模拟 gRPC 请求

Protobuf 解码:将 Protobuf 二进制数据(Base64/Hex)解码还原为可读的 JSON,支持有 Schema 和无 Schema 两种解码模式

隐私安全:所有处理均在浏览器本地完成,数据不上传服务器

使用场景

gRPC 接口调试
开发 gRPC 服务时,快速根据 proto 定义生成测试用 JSON 数据,或将抓包获取的二进制数据解码为可读格式。

协议验证
验证 proto 文件定义是否正确,检查字段类型和编号是否符合预期。

数据分析
对存储或传输中的 Protobuf 二进制数据进行解码分析,无需编写代码即可查看内容。

学习辅助
帮助初学者理解 Protobuf 的编码方式,直观展示 proto 定义与 JSON 之间的映射关系。

常见问题(FAQ)

Protobuf 转 JSON 工具怎么使用?

使用方法:1) 在左侧输入区粘贴 .proto 定义文件内容(包含 message 定义);2) 点击"解析 Proto"按钮,工具会自动解析所有 Message 结构;3) 选择需要转换的 Message,即可生成对应的 JSON 模板(字段名和默认值);4) 也可以在 JSON 编辑区修改数据后,点击"编码"将 JSON 转为 Protobuf 二进制格式。

Protobuf 和 JSON 有什么区别?

主要区别:1) 格式:JSON 是人类可读的文本格式,Protobuf 是二进制格式不可直接阅读;2) 体积:Protobuf 通常比 JSON 小 3-10 倍;3) 速度:Protobuf 序列化/反序列化速度比 JSON 快数倍;4) Schema:Protobuf 必须有预定义的 .proto 文件,JSON 无需 Schema;5) 适用场景:JSON 适合 REST API 和配置文件,Protobuf 适合高性能微服务通信。

这个工具支持哪些 Protobuf 语法?

支持 proto3 语法的常用特性:基本类型(int32、int64、float、double、bool、string、bytes)、嵌套 Message 定义、enum 枚举类型、repeated 数组字段、map 映射类型、oneof 联合字段等。暂不支持 proto2 语法和 extensions。

无 Schema 解码是什么意思?

无 Schema 解码是指在没有 .proto 定义的情况下,直接解析 Protobuf 二进制数据。由于缺少类型信息,字段名会显示为数字编号,部分类型可能无法精确识别(如 int32 和 float 使用相同的 wire type)。有 Schema 解码则能还原完整的字段名和正确的数据类型。