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

仅靠.pb文件如何将Protobuf .bin文件转换为JSON格式?

Protobuf .bin转JSON的实用方案

现成工具直接用

不用自己折腾开发,这些工具能快速解决问题:

  • 官方protoc工具:
    这是最靠谱的选择,步骤分两步:
    1. 先把.proto文件转成对应语言的代码(比如Python):
      protoc --python_out=. your_file.proto
      
    2. 直接解码.bin文件并输出结构化内容,再转JSON:
      先查看原始结构:protoc --decode_raw < your_file.bin
      结合.proto定义解码指定消息类型:
      protoc --decode=YourMessageName your_file.proto < your_file.bin
      
      输出的文本可以用jq这类工具一键转成JSON。
  • GUI工具(适合非开发):
    • Protobuf Inspector:拖入.proto和.bin文件,直接查看结构并导出JSON,操作零门槛。
    • QuickType:能基于.proto定义解析二进制数据,输出JSON格式,不用写代码。

自己用Python写工具(新手也能搞定)

哪怕Python基础差也完全没问题,跟着步骤走就行:

  1. 先装依赖:
    pip install protobuf
    
  2. 用protoc生成Python代码(就是上面第一步的命令)。
  3. 复制下面的脚本,替换文件名和消息类型就行:
    import json
    from google.protobuf.json_format import MessageToJson
    # 替换成你生成的Python文件里的消息类
    from your_generated_proto import TargetMessage
    
    # 读取二进制文件
    with open("your_data.bin", "rb") as f:
        bin_data = f.read()
    
    # 解析数据
    msg = TargetMessage()
    msg.ParseFromString(bin_data)
    
    # 转成JSON并保存
    json_result = MessageToJson(msg)
    print(json_result)
    with open("output.json", "w", encoding="utf-8") as f:
        f.write(json_result)
    
    不需要懂复杂语法,改几个名字就能跑通。

小提示

  • 确保.proto文件完整,如果有依赖其他.proto,要把所有相关文件放在同一目录,或者用protoc --proto_path=./proto_dir指定路径。
  • 如果.bin是多个消息拼起来的,可能需要循环解析,但游戏里大多是单条消息,先试试单条解析。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.11 13:33:13