Protobuf 转 JSON

将 Protocol Buffers Schema 转换为示例 JSON,或解码 Protobuf 二进制数据为 JSON。支持 proto3、嵌套消息和枚举。浏览器端运行,数据不离开本地。

100% 浏览器端运行 数据不离开你的设备 免费 · 无需注册
JSON Output
JSON output will appear here.

使用方法

Schema → 示例 JSON(默认模式)

  1. 在左侧面板粘贴 .proto Schema。
  2. 工具自动检测所有消息类型并填充下拉列表。
  3. 选择一个消息类型,点击 生成 JSON
  4. 右侧出现带默认字段值的示例 JSON。

二进制 → JSON 模式

  1. 使用顶部切换按钮切换到「二进制 → JSON」模式。
  2. 在上方文本框粘贴 .proto Schema。
  3. 在第二个文本框粘贴编码后的二进制数据(hex 或 base64)。
  4. 选择消息类型,点击 解码二进制

Proto3 语法快速参考

syntax = "proto3";

package myapp;

message User {
  string id = 1;
  string name = 2;
  int32 age = 3;
  repeated string roles = 4;
  Address address = 5;
  UserStatus status = 6;
}

message Address {
  string street = 1;
  string city = 2;
  string country_code = 3;
}

enum UserStatus {
  UNKNOWN = 0;
  ACTIVE = 1;
  INACTIVE = 2;
}

字段类型参考

  • 标量类型:doublefloatint32int64uint32uint64boolstringbytes
  • 重复字段:在任意字段前加 repeated——对应 JSON 数组
  • 嵌套消息:使用另一个消息类型作为字段类型
  • 枚举:enum 定义,第一个值必须为 0
  • oneof:一组字段中同一时刻只能设置一个

隐私

所有处理在客户端完成,Schema 和二进制数据不会被上传或存储。

FAQ

什么是 Protocol Buffers(Protobuf)?

Protocol Buffers 是 Google 的语言中立、平台无关的结构化数据序列化机制,是 JSON 和 XML 的更快、更小的替代方案。你在 .proto 文件中定义数据结构,然后用生成的代码读写该数据。

我的数据会上传到服务器吗?

不会。所有解析和解码完全在浏览器中通过 protobufjs 库完成,你的 Schema 和二进制数据不会离开你的设备。

「Schema → 示例 JSON」模式是什么?

粘贴 .proto Schema,选择一个消息类型,工具会生成带默认值的示例 JSON 对象——空字符串、零数字、空数组。用于在没有真实数据时了解消息结构。

「二进制 → JSON」支持哪些格式?

工具同时接受十六进制(如 0a 05 41 6c 69 63 65)和 Base64 编码的 Protobuf 二进制数据,十六进制字节之间的空格和冒号会被自动忽略。

支持哪种 proto 语法?

以 proto3 为主要目标,底层 protobufjs 库也可以处理基本的 proto2 语法,但推荐使用 proto3。