2017-12-08 7 views
0

OK, ich habe eine protobuf formatierte Datendatei. Ich habe auch eine .proto Datei, die das Schema der Datei beschreibt.Protobuf Daten + .proto -> JSON

Ich habe umfangreiche Bibliotheken gefunden, mit denen ich bekannte Nachrichten aus der Datei extrahieren kann. Wie schön.

Allerdings weiß ich nicht wirklich die Struktur der Datei. Es kann verschiedene "Nachrichten" der obersten Ebene in der Datei geben, und was ich wirklich tun möchte, ist nur die Datei zu überprüfen und einen Dump von dem zu bekommen, was darin ist.

Würde gerne einen Befehl haben, die mir wie etwas tun können:

Ist das zu viel verlangt? Das Google gibt keine offensichtliche Antwort, also gibt es vielleicht etwas Subtiles über Protobufs, die ich noch nicht bekommen habe.

Ideen?

Antwort

0

Dank ein paar hilfreiche Leute auf der Protokoll-Puffer Google-Gruppe, habe ich eine Antwort.

Die Antwort ist, "Entschuldigung, nein".

Nun, in der Nähe. Das Problem liegt darin, dass Sie wissen, was die "root" -Meldung in der Datendatei ist. In meinem Fall war es nicht offensichtlich, also hoffte ich, dass ein Dump der Datei die Wurzel enthüllen würde. Kein Glück, da die Datei selbst nicht weiß, was die Felder oder Nachrichten sind, sie haben nur Daten, die Sie extrahieren können, wenn Sie die richtige .proto-Datei haben.

In meinem Fall hatte ich ein paar Vermutungen, was die Wurzel sein könnte, also habe ich Versuch und Irrtum gemacht, bis ich die Nachricht gefunden habe, die zu wissen schien, was alle Felder in der Datei sind.

Es wäre schön gewesen, wenn die .proto-Datei angegeben hätte, was die Root-Nachricht ist. In diesem Fall wäre ich sicher, dass ein Tool für diese Konvertierung bereits existiert.

Ich hoffe, das hilft.

0

Hier ist ein Pass bei der Lösung des Problems, das Sie gestellt haben. Hier ist eine Beispiel-Befehlszeile zum Ausführen dieses Tools.

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

https://github.com/rohitsaboo/proto2json

Derzeit unterstützt das Tool nur Protokollpuffer-Schemata, die von anderen Dateien auf protos abhängen. Es sollte jedoch möglich sein, es zu erweitern, um "dependency_schemas" zu unterstützen.

Verwandte Themen