Protobuf 转 JSON
将 Protocol Buffers Schema 转换为示例 JSON,或解码 Protobuf 二进制数据为 JSON。支持 proto3、嵌套消息和枚举。浏览器端运行,数据不离开本地。
使用方法
Schema → 示例 JSON(默认模式)
- 在左侧面板粘贴
.protoSchema。 - 工具自动检测所有消息类型并填充下拉列表。
- 选择一个消息类型,点击 生成 JSON。
- 右侧出现带默认字段值的示例 JSON。
二进制 → JSON 模式
- 使用顶部切换按钮切换到「二进制 → JSON」模式。
- 在上方文本框粘贴
.protoSchema。 - 在第二个文本框粘贴编码后的二进制数据(hex 或 base64)。
- 选择消息类型,点击 解码二进制。
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;
}
字段类型参考
- 标量类型:
double、float、int32、int64、uint32、uint64、bool、string、bytes - 重复字段:在任意字段前加
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。