go - 解码Protobuf文字

标签 go protocol-buffers decode

我从网站的http响应中收到一些Protobuf文本。文本大致如下所示:

1 {
    2: some value
    7: {
       12: some value
    }
    8: some value
}
除了内容要大得多。为了安全起见,我不想粘贴实际文本。
无论如何,我该如何“解码”它以便查看架构?

最佳答案

目前,不可能从protobuf消息中获得完全准确的架构。
话虽如此,您可以半封闭。有一些工具,例如protobuf-inspector,可以打印出有关消息结构的更多信息。
关于此工具(以及一般而言)的一些重要警告,说明为何无法获得完整的架构,摘自该工具的自述文件:

[...]字段名称以及一些高级详细信息如:

  • varint是否使用Zig-zag编码(默认情况下不假定Zig-zag)
  • 32位/ 64位值是整数还是浮点型(默认情况下均显示)
  • 签名(默认情况下自动检测)
  • 关于go - 解码Protobuf文字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63178591/

    相关文章:

    android - 在 Android intent extras 中使用 protobuffers 而不是 Parcelables?

    javascript - 如何将 jms 消息发送到 activeMQ 并使用 mqttJS 在 javascript 中正确解码它

    go - 使用相同库的两个项目中的依赖性问题

    string - 在 Golang 中将显式字符串传递给 fmt.Sprint

    protocol-buffers - Google Protocol Buffer 的典型内存空间使用情况是多少?

    typescript - Nestjs GRPC 不带参数的服务方法

    java - 读取 XML 文件需要很长时间

    java - 为什么 Oracle 的 DECODE 给我的值与 NVL 不同?

    arrays - go程序比较两个数组并将匹配的元素存储在golang中的第三个数组中

    go - 为什么 "fmt.Sprintf("%v ,", lines[i])"将逗号放在新行上?