Protobuf 日期 + .proto -> w=10=sh

Protobuf data + .proto -> JSON

好的,我有一个protobuf格式的数据文件。我还有一个描述文件架构的 .proto 文件。

我找到了丰富的库,可以让我从文件中提取已知消息。真好

但是,我真的不知道文件的结构。文件中可能有不同的顶级 "messages",我真正想做的只是检查文件并转储其中的内容。

希望有一个命令可以让我做类似的事情:

proto2json <format.proto> <datafile> -o <output.json>

这个要求是不是过分了? Google 没有给出明显的答案,所以也许我还没有得到关于 protobufs 的一些微妙之处。

想法?

感谢 protocol-buffers google 组的一些乐于助人的人,我得到了答案。

答案是,"sorry, no"。

嗯,关闭。问题在于您是否知道数据文件中的 "root" 消息是什么。在我的例子中,它并不明显,所以我希望文件的转储会泄露根目录。运气不好,因为文件本身不知道字段或消息是什么,如果您有正确的 .proto 文件,它们只有可以提取的数据。

在我的例子中,我对根可能是什么有一些怀疑,所以我反复试验直到我发现似乎知道文件中所有字段的消息。

如果 .proto 文件指明根消息是什么,那就太好了,在这种情况下,我确信执行此转换的工具已经存在。

希望对您有所帮助。

这是解决您提出的问题的途径。这是 运行 此工具的示例命令行。

$ ./proto2json.sh --schema=test/test.proto \
    --root=Recording --in=test/test.pb --out=out.json

https://github.com/rohitsaboo/proto2json

目前,该工具仅支持不依赖于其他文件原型的协议缓冲区架构。但是,应该可以扩展它以支持 "dependency_schemas".