JSON转Protobuf
在线JSON转Protobuf工具,支持Proto2/Proto3语法与字段类型映射,快速生成可用的.proto消息定义
Protobuf配置
协议版本
生成选项
类型映射
配置 JSON 类型到 Protobuf 字段类型的转换规则
JSON输入
Protobuf定义
PROTO3 定义
等待生成 Protobuf 定义...
转换统计
0
消息定义
0
字段定义
0
枚举定义
0
嵌套消息
JSON转Protobuf 使用指南
该工具可将 JSON 对象快速转换为 .proto 定义文件,支持 Proto2 与 Proto3 语法,适用于 gRPC 接口建模、协议草拟与联调准备。
Proto2 与 Proto3 差异
- Proto2 支持 required/optional/repeated,字段约束更严格,适合历史协议维护。
- Proto3 默认弱化 required,语法更简洁,和 gRPC 生态兼容更好。
- Proto3 可结合 optional 表达字段存在性,便于接口渐进演进。
转换规则
- JSON 对象映射为 message,字段名自动转换为 snake_case。
- JSON 数组映射为 repeated 字段,数组元素对象会生成独立消息类型。
- 整数、浮点、布尔、字符串类型按映射配置生成,可根据协议调整。
- null 值默认按字符串类型处理,避免生成非法 Protobuf 字段定义。
使用步骤
- 选择 Proto2 或 Proto3,并填写包名与消息名前缀。
- 按需勾选优化选项与类型映射策略。
- 输入或载入 JSON 示例,系统会自动生成 Protobuf 定义。
- 检查结果后可直接复制或下载 .proto 文件。
注意事项
- 为避免数值精度问题,超大整数建议映射为 string 或 int64。
- 时间字段可统一使用 string(ISO8601)或 int64(时间戳)策略。
- 当数组元素结构不一致时,建议先标准化样本再生成协议。
- 本工具所有计算均在浏览器本地完成,不会上传输入数据。
常见问题
- 为什么数组字段类型不符合预期?工具会基于数组样本推断,请检查首个有效元素结构。
- 为什么 message 名称被改写?系统会自动规范化非法字符,确保 .proto 可编译。
- 为什么没有生成 enum?当前版本专注 JSON 结构到 message 的自动转换,枚举可按业务手动补充。