将 JSON 数据转换为 Protocol Buffer 模式定义,即时生成
格式转换
关于此工具
JSON 转 Protobuf 工具可将 JSON 数据转换为 Protocol Buffer(.proto)模式定义。它自动推断字段类型,处理嵌套对象和数组,生成有效的 proto3 语法,所有操作均在浏览器本地完成,无需服务器。
主要功能
- 自动从 JSON 值推断字段类型
- 支持嵌套对象和 repeated 字段
- 生成有效的 proto3 语法并自动编号字段
- 可自定义包名和语法版本
- 一键复制和下载生成的模式定义
- 实时输入转换,输入即生成
使用场景
- 从现有 JSON API 生成 .proto 文件,用于 gRPC 迁移
- 从示例数据快速原型化 Protocol Buffer 模式
- 将 REST API 响应转换为 Protocol Buffer 定义
- 从 JSON 示例引导微服务通信契约
- 为跨语言项目的数据序列化创建 Protobuf 模式
json
protobuf
grpc
schema
protocol-buffers
常见问题
proto2 和 proto3 有什么区别?
Proto3 是最新版本,语法更简洁——移除了必填字段、默认值和字段存在性追踪。Proto2 支持 required/optional 修饰符和显式默认值。对于新项目,推荐使用 proto3,除非你需要字段存在性检查。
工具如何处理嵌套的 JSON 对象?
嵌套对象会自动转换为独立的 message 定义。例如,一个包含嵌套 "address" 字段的 JSON 对象,会生成主 message 和一个 "Address" message,字段引用嵌套的 message 类型。
JSON 数组在模式中如何转换?
JSON 数组会转换为 Protobuf 的 repeated 字段。如果数组包含对象,元素类型从第一个元素推断。字符串数组如果所有值都是不同的非空字符串,可能会被检测为枚举类型。
可以自定义包名和消息名吗?
可以。你可以在选项中设置自定义包名,它会包含在 proto3 头部。顶层消息名默认使用包名的 PascalCase 形式,嵌套消息名从 JSON 键名派生。
使用此工具时数据安全吗?
完全安全。所有转换均在浏览器本地完成,不会将任何 JSON 数据上传到服务器,确保你的信息完全私密和安全。