2010-01-03 3 views
5

Ich muss die Nachrichtenstruktur einer Protobuf-Nachricht erhalten, die mir ohne die Definition der Nachricht übertragen wurde. Mit UnknownFieldSet Methoden konnte ich eine String-Darstellung der Nachricht erhalten, wie unten:Wie bekomme ich die Struktur einer Google Protobuf-Nachricht ohne die Definition

1: "a" 
2: { 
    3:"b" 
    4:"c" 
} 

Welche Datenstruktur ist Feld 2 repräsentieren? Mit UnknownFieldSet.Field.getGroupList konnte ich den Inhalt von Feld 3 und 4 bekommen, bedeutet das, dass Feld 2 die "veraltete" Gruppenstruktur hat?

Antwort

3

Wenn Sie die rohen binären Daten gepostet haben, könnten wir Ihnen sagen - oder Sie können die protocol buffer encoding documentation betrachten. Wenn Sie ein Feld mit einem Drahttyp von 3 sehen, zeigt dies eine Gruppe an.

Ich bin nicht so vertraut mit der API von UnknownFieldSet, wie ich wahrscheinlich sein sollte, aber es klingt wie Sie mit einer Gruppe beschäftigen.

Auf der anderen Seite würde ich erwarten, dass die meisten Verwendungen von Gruppen in Google intern sind - woher kamen diese Daten? Zwar gibt es nichts zu Anschlag Menschen aus der Verwendung der veralteten Gruppe Format anstelle von eingebetteten Nachrichten, aber ich würde Hoffnung, dass einige so tun ...

Gibt es einen Grund, warum Sie nicht für die .proto fragen Datei beteiligt? Während einige Informationen können sicherlich aus Protokoll Puffer ohne ihre Definitionen, sie sind wirklich entwickelt, um in Situationen, in denen beide Enden tun kennen das Nachrichtenformat - obwohl möglicherweise verschiedene Versionen.

+0

danke, es ist in der Tat eine Gruppe. – dqminh

Verwandte Themen