首页 > 解决方案 > 如何使用 bash 脚本将二进制 protobuf 反序列化为 json

问题描述

我开发了一个 bash 脚本来将二进制 protobuf 反序列化为 json,但输出看起来像 json 但不是真正的 json

代码:

#!/bin/bash
...
binaryMsg= ..
echo binaryMsg > /tmp/di.bin

protoc --decode=my.proto.PkgDiStatus controller.proto</tmp/di.bin

它给出如下输出

ups_status {
  low_battery: false
  no_power_out: false
  replace_battery: false
  common_fault: false
}
testing_mode: false

我必须提取low_batteryreplace_batter的值,虽然这个输出可以用像 sed 这样的自定义脚本解析,但是如果我得到 json 那么 jq 可以用于解析。

标签: jsonbashprotocol-buffersprotoprotoc

解决方案


推荐阅读