Protobuf数据+ .proto - > JSON

时间:2017-12-08 01:55:11

标签: json converter protocol-buffers

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

我找到了大量的库,可以让我从文件中提取已知的消息。多好啊。

但是,我真的不知道文件的结构。文件中可能有不同的顶级“消息”,我真正想做的只是检查文件并获取其中的内容。

很想拥有一个允许我做类似命令的命令:

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

这要求太多了吗?谷歌并没有给出明显的答案,所以也许我还没有得到关于protobufs的微妙内容。

想法?

2 个答案:

答案 0 :(得分:0)

感谢协议缓冲谷歌小组的一些有用的人,我有一个答案。

答案是,&#34;对不起,没有&#34;。

好吧,关闭。问题在于你要知道&#34; root&#34;消息在数据文件中。在我的情况下它并不明显,所以我希望转储文件会泄露根。没有运气,因为文件本身并不知道字段或消息是什么,如果你有正确的.proto文件,它们只有你可以提取的数据。

在我的情况下,我对根本可能是什么有一些怀疑,所以我做了反复试验,直到我找到了似乎知道文件中所有字段都是什么的消息。

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

我希望这会有所帮助。

答案 1 :(得分:0)

这是解决你提出的问题的过程。这是运行此工具的示例命令行。

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

https://github.com/rohitsaboo/proto2json

目前,该工具仅支持不依赖于其他文件的protos的协议缓冲模式。但是,应该可以扩展它以支持“dependency_schemas”。