¿Hay alguna forma de serializar un diccionario utilizando búferes de protocolo, o tendré que usar Thrift si lo necesito?Diccionario en búferes de protocolo
Respuesta
Normalmente, las personas escriben el diccionario como una lista de pares clave-valor y luego reconstruyen el diccionario en el otro extremo.
message Pair {
optional string key = 1;
optional string value = 2;
}
message Dictionary {
repeated Pair pairs = 1;
}
¿Hay alguna manera de hacer lo mismo con un tipo dinámico? Tengo un 'Diccionario
Bueno, no. Protobuf no es un protocolo de serialización de objetos general. Debe definir los mensajes protobuf para todos los datos que desea serializar. (Honestamente, si tienes un mapa de
@Mike Tendrás que crear un campo para cada tipo que * podría * ser, que es un error a la espera de ocurrir. –
Puede consultar el paquete ProtoText.
Suponga que desea serializar un dict person_dict
a un objeto protobuf predefinido PersonBuf
definido en el módulo personbuf_pb2
.
En este caso, utilizar prototexto,
import ProtoText
from personbuf_pb2 import PersonBuf
obj = PersonBuf()
obj.update(person_dict)
Para los futuros solicitantes de respuesta, ProtoBuf now supports Maps forma nativa:
message MapMessage
{
map<string, string> MyMap = 1;
}
Tenga en cuenta que Maps aún no se puede repetir. – mattes
- 1. Protocolo de búferes con JPA
- 2. Extensión de búferes de protocolo en Java
- 3. Integrar búferes de protocolo en Maven2 compilación
- 4. ¿Cómo usar los búferes de protocolo?
- 5. búferes de protocolo con c & C++
- 6. Alternativas a los búferes de protocolo
- 7. búferes de protocolo: ¿no hay notación para búferes de tamaño fijo?
- 8. Datos/respuesta de búferes del protocolo de volcado
- 9. Uso de búferes de protocolo con Objective-C
- 10. no puede compilar ejemplo de Google búferes de protocolo
- 11. ¿Los Búferes de Protocolo de Google se usan en aplicaciones de producción a gran escala?
- 12. Serialización con búferes de protocolo en una base de datos sin esquema
- 13. Variable indefinida de la importación cuando se utilizan los búferes de protocolo en PyDev
- 14. ¿Cómo diseñar para un futuro valor de enum adicional en los búferes de protocolo?
- 15. ¿cuál es la forma correcta de hacer polimorfismo con los búferes de protocolo?
- 16. ¿Cuál es la mejor manera de usar decimales y fechas con búferes de protocolo?
- 17. Uso de los búferes del protocolo de Google con Java NIO?
- 18. Buffers de protocolo de registro
- 19. Buffers de protocolo C# .net - ¿soporte protobuf-net para serializar diccionario de valores de objeto?
- 20. Android y Protocolo Buffers
- 21. Buffers de protocolo de Google en C#
- 22. 3 búferes de índice
- 23. Vim pestañas y búferes
- 24. Cómo usar Python y los búferes de protocolo de Google para deserializar los datos enviados a través de TCP
- 25. ¿Cómo busco los búferes abiertos en Vim?
- 26. ¿Cómo cambiar entre búferes visibles en emacs?
- 27. ¿Cómo eliminar múltiples búferes en Vim?
- 28. Eliminando todos los búferes vacíos en VIM
- 29. ¿Hay alguna base de datos que admita buffers de protocolo?
- 30. ¿Cómo maneja el buffer de protocolo el control de versiones?
duplicar http://stackoverflow.com/questions/3874024/how-does- protobuf-net-support-for-dictionary-keyvaluepair-works –
No realmente duplicado. Esa pregunta fue sobre los enlaces .net. OP no especifica el entorno del lenguaje. – JesperE