You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在命令行将JSON编码为二进制Protocol Buffers(Protobuf)?

如何在命令行将JSON序列化为二进制Protocol Buffers(Protobuf)?

假设你的JSON遵循Protobuf 3 JSON Mapping规范,官方的protoc工具本身并不支持直接将JSON转为二进制Protobuf,但可以通过先将JSON转换为Protobuf文本格式,再借助protoc完成序列化,具体步骤如下:

步骤1:将JSON转换为Protobuf文本格式

你需要用对应语言的Protobuf工具库完成这一步转换,以Python为例:

  1. 先安装依赖库:pip install protobuf
  2. 编写简单转换脚本(替换成你的.proto编译模块和目标消息类型):
from google.protobuf.json_format import Parse
import your_proto_module_pb2  # 导入编译后的Protobuf模块

# 读取输入JSON文件
with open("input.json", "r", encoding="utf-8") as f:
    json_data = f.read()

# 将JSON解析为Protobuf消息实例
target_msg = your_proto_module_pb2.YourTargetMessage()
Parse(json_data, target_msg)

# 写入Protobuf文本格式文件
with open("message.prototxt", "w", encoding="utf-8") as f:
    f.write(str(target_msg))

步骤2:用protoc将文本格式转为二进制Protobuf

执行以下命令(替换对应的消息类型和.proto源文件路径):

protoc --encode=your_proto_module_pb2.YourTargetMessage ./path/to/your_proto.proto < message.prototxt > output.bin
  • --encode:指定要编码的目标消息类型
  • 后续参数为你的.proto源文件路径
  • 通过重定向读取文本格式输入,最终输出二进制Protobuf文件

如果不想编写脚本,也可以使用第三方CLI工具(如grpcurl等)直接完成JSON到二进制的转换,但上述方法仅依赖官方protoc,兼容性更强。

内容的提问来源于stack exchange,提问作者Touko

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.03 18:30:42