有没有什么办法来序列字典使用协议缓冲区,或者我会,如果我需要使用储蓄?字典在协议缓冲区
字典在协议缓冲区
回答
人们通常写下字典作为键 - 值对的列表,然后重建另一端的字典。
message Pair {
optional string key = 1;
optional string value = 2;
}
message Dictionary {
repeated Pair pairs = 1;
}
有没有办法用动态类型做同样的事情?我有一个'Dictionary
好吧,没有。 Protobuf不是一个通用对象序列化协议。您需要为所有要序列化的数据定义protobuf消息。 (老实说,如果你有一个<字符串,对象>地图,你应该通过重构你的代码开始。) – JesperE 2011-03-10 06:53:07
@Mike你将不得不创建一个字段为每个类型就可以* *是,这是一个bug只是在等待发生。 – 2015-08-09 01:01:38
您可以检查ProtoText包。
假设您想将字典person_dict
序列化为在personbuf_pb2
模块中定义的预定义的PersonBuf
protobuf对象。
在这种情况下,使用ProtoText,
import ProtoText
from personbuf_pb2 import PersonBuf
obj = PersonBuf()
obj.update(person_dict)
对于未来的答案求职者,ProtoBuf now supports Maps本身:
message MapMessage
{
map<string, string> MyMap = 1;
}
请注意,地图仍然不能重复。 – mattes 2018-03-05 20:06:30
- 1. 协议缓冲区
- 2. Android和协议缓冲区
- 3. 谷歌协议缓冲区 -
- 4. 协议缓冲区挑战
- 5. JPA协议缓冲区
- 6. 协议缓冲区记录
- 7. 协议缓冲区扩展
- 8. gson vs协议缓冲区
- 9. 协议缓冲区 - @ModelAttribute
- 10. Delphi协议缓冲区?
- 11. 协议缓冲区文件?
- 12. 协议缓冲区错误
- 13. 如何在协议缓冲区的Python
- 14. 谷歌的协议缓冲区在c#
- 15. 协议缓冲区在Angular 2项目
- 16. 协议缓冲区:无固定大小缓冲区的符号?
- 17. 通过REST发送协议缓冲区
- 18. Java中的扩展协议缓冲区
- 19. cmakeable版本的协议缓冲区
- 20. 协议缓冲区多态性
- 21. 谷歌协议缓冲区int32 vs int64
- 22. 协议缓冲区头碰撞
- 23. 协议缓冲区的任何经验?
- 24. 谷歌协议缓冲区错误
- 25. 与协议缓冲区集成?
- 26. 协议缓冲区MIME问题
- 27. 如何使用协议缓冲区?
- 28. 写入/读取协议缓冲区
- 29. 如何使用协议缓冲区?
- 30. 协议缓冲区:找不到包
复制http://stackoverflow.com/questions/3874024/how-does- protobuf-net-support-for-dictionary-keyvaluepair-works – 2010-11-16 14:00:12
不是真的重复。这个问题是关于.net绑定的。 OP没有指定语言环境。 – JesperE 2010-11-17 12:29:59