输入JSON数据
生成选项
生成的.proto文件
JSON转Protobuf Schema能做什么?
将JSON数据自动转换为Protobuf Schema(.proto文件)定义。工具会分析JSON结构,推断字段类型,生成规范的message定义,支持嵌套对象、数组、枚举等复杂结构,是gRPC和微服务开发的好帮手。
核心功能
• 自动类型推断:根据JSON值类型自动映射为Protobuf类型
• 嵌套对象支持:自动生成嵌套message定义
• 数组处理:自动识别为repeated字段
• proto2/proto3切换:支持两种语法版本
• 一键下载:直接下载为.proto文件
使用教程
步骤1:在输入区域粘贴JSON数据。必须是有效的JSON格式,可以是对象或数组。
步骤2:设置Message名称(如UserRequest)、Proto语法版本和包名。包名可选,留空则不生成package声明。
步骤3:点击「生成.proto」按钮,结果即时显示。复制或下载.proto文件后可配合protoc编译器使用。
应用场景
场景1:gRPC服务开发 — 从现有JSON API迁移到gRPC时,先用本工具快速生成.proto骨架,再手动调整细节,大幅减少手写Schema的工作量。
场景2:微服务接口定义 — 团队讨论接口时常用JSON示例,确认后用本工具一键转为Protobuf定义,保证实现与设计一致。
场景3:数据迁移 — 将JSON格式的配置或数据迁移到Protobuf存储时,快速生成对应的Schema定义。
扩展知识
类型映射规则:string→string,number(整数)→int32(超范围用int64),number(浮点)→double,boolean→bool,null→NullValue,object→嵌套message,array→repeated。proto3所有字段默认optional。
Protobuf vs JSON:Protobuf序列化后体积比JSON小3-10倍,解析速度快20-100倍,有严格的类型检查。缺点是人类不可读,需要.proto文件才能解析。适合内部服务通信,不适合面向前端的API。
什么是Protobuf?
Protocol Buffers(Protobuf)是Google开发的序列化格式,比JSON更小更快。需要定义.proto文件描述数据结构,编译器生成各语言代码。广泛用于gRPC、微服务通信等高性能场景。
如何推断JSON字段类型?
工具根据JSON值自动推断:字符串→string,整数→int32,浮点数→double,布尔→bool,null→NullValue,对象→嵌套message,数组→repeated。整数范围超int32则用int64。
支持嵌套对象吗?
支持。嵌套对象会自动生成嵌套的message定义。例如JSON中的user对象会生成message User嵌套在父message中。支持任意深度嵌套。
生成的.proto文件可以直接使用吗?
生成的是有效的.proto文件,可配合protoc编译器使用。建议检查字段编号和类型是否符合需求,必要时手动调整syntax版本和package名称。
数组元素类型如何确定?
工具取数组第一个元素的类型作为repeated字段类型。如果数组为空,默认使用string类型。建议在转换后检查数组字段的类型是否正确。
JSON中的null值如何处理?
JSON中的null值会被推断为NullValue类型。你也可以使用optional关键字标记可能为null的字段(proto3语法)。