2009-07-09 10 views
14

Sto provando a utilizzare Protocol Buffers per la serializzazione dei messaggi.Come si codifica una mappa <String, Object> utilizzando i buffer del protocollo?

Il mio formato messaggio dovrebbe contenere la mappa < Stringa, Oggetto> voci ... ma come posso scrivere la definizione di proto?

Per quanto ne so, Protocol Buffers non ha un tipo di mappa integrato. Potrei modellarlo usando campi ripetitivi. Ma il grosso problema che ho è che devi definire tutti i tuoi tipi. Voglio che il mio messaggio sia flessibile, quindi non posso specificare i tipi.

Qualche idea?

+0

Per quel che vale: ora sembra 'proto3' ha '' mappe <,> sintassi: https://developers.google.com/protocol-buffers/docs/proto3#maps –

risposta

10

Vorrei modellare una tupla con una chiave e un valore (probabilmente un campo valore per tipo che potrebbe essere il valore). Quindi basta avere un elenco ripetuto di quel tipo di tupla. Avresti bisogno di costruire la mappa stessa nel codice.

Quando si dice che non è possibile specificare i tipi - che tipo di tipi stai parlando? Se nella tupla si dispone di un campo facoltativo di ciascun tipo, ciò farebbe fronte a tutte le primitive e il numero potrebbe essere mappare i messaggi serializzandoli in una stringa di byte.

Sembra che il livello di "unstructure" non sia adatto per PB.

+1

sembra ragionevole ... ma io ti immagino giusto: PB non sembra una buona misura per il mio problema – arturh

+2

@artuh - cosa hai usato per il tuo problema? – ekeren

+0

Quindi ... qualche idea? –

Problemi correlati