Wie würden Sie Kodieren eine Map<String, Object> mit Protocol Buffers?
Ich versuche, Protocol Buffers für die Nachricht-Serialisierung.
Meine message format enthalten sollte, Map< String, Object > Einträge ... aber wie Schreibe ich das .proto definition?
Soweit ich weiß, Protocol Buffers nicht über einen build-in-Karte-Typ. Ich könnte das Modell um, dass die Verwendung sich wiederholender Felder. Aber das große problem, das ich habe, ist, dass Sie brauchen, um zu definieren, alle Ihre Arten. Ich möchte, dass meine Nachricht, um flexibel zu sein, so kann ich nicht geben den Typen.
Irgendwelche Ideen?
Für was es Wert ist: es erscheint nun 'proto3' hat
maps<,>
syntax: developers.google.com/protocol-buffers/docs/proto3#mapsInformationsquelleAutor arturh | 2009-07-09
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich würde Modell ein Tupel mit einem Schlüssel und einem Wert (wahrscheinlich ein Wert pro Feld geben, dass die Wert sein könnte). Dann nur noch ein wiederholtes Liste, Tupel-Typ. Sie würden bauen müssen, die Karte selbst im code.
Wenn Sie sagen, Sie können nicht angeben, die Arten - welche Arten sind Ihnen reden? Wenn Sie ein optionales Feld von jeder Art in dem Tupel, dann wäre das fertig werden für alle primitiven - und Sie könnte Karte-Nachrichten serialisieren Sie in einen byte-string.
Es klingt wie das Niveau der "unstructure" Sie kann nicht eine gute Passform für PB aber.
was haben Sie sich schließlich für Ihr problem?
So... Irgendwelche Ideen?
Da haben Sie noch nicht alle unterschiedliche Anforderungen haben, warum würden Sie erwarten, dass andere Informationen? Protocol buffers unterstützt jetzt das Konzept einer Karte, aber nicht auf "Allgemeine Nachricht" - es hat einen bestimmten Typ.
InformationsquelleAutor Jon Skeet