JSON转Protobuf工具

在线把 JSON 样例转换成 Protobuf .proto 消息定义,自动推断字段类型和编号,适合 gRPC 接口开发。

功能说明

本工具将 JSON 对象转换为 Protocol Buffers(protobuf)的 .proto 定义文件。您只需粘贴一段 JSON,工具会自动分析数据结构,生成对应的 message 定义,包括字段类型、字段编号、嵌套消息等。

使用方法

  1. 在输入区粘贴 JSON 文本(必须是对象,不能是数组或字符串)。
  2. 可修改根消息名称(默认 RootMessage)。
  3. 选择 proto 版本(proto3 或 proto2),以及是否生成 package 声明。
  4. 点击“生成 Proto”或直接输入,结果会显示在下方。

计算原理

工具递归遍历 JSON 的每个字段:

字段编号从 1 开始递增,嵌套消息命名为“父消息_字段名”(首字母大写)。

注意事项

JSON 中的 null 值会怎么处理?

null 值会被推断为 string 类型,因为 protobuf 没有 null 概念。建议在 JSON 中避免使用 null,或手动调整生成后的字段类型。

嵌套对象会生成多个 message 吗?

会的。每个嵌套对象都会生成独立的 message,名称由父消息名和字段名组合而成,例如父消息为 User,字段 address 会生成 User_Address。

数组中的对象如何处理?

如果数组元素是对象,会生成 repeated 的 message 字段,并自动创建对应的嵌套 message 定义。空数组默认使用 repeated string。

生成的 proto 代码可以直接使用吗?

大部分情况可以直接使用,但建议检查字段编号、类型是否符合预期,特别是数字类型(int32 vs int64)和命名风格。工具生成的 package 为 example,您可以根据项目修改。