有沒有什麼辦法來序列字典使用協議緩衝區,或者我會,如果我需要使用儲蓄?字典在協議緩衝區
字典在協議緩衝區
回答
人們通常寫下字典作爲鍵 - 值對的列表,然後重建另一端的字典。
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. 協議緩衝區精簡版與常規協議緩衝區
- 3. 擴展協議緩衝區
- 4. gson vs協議緩衝區
- 5. 協議緩衝區記錄
- 6. 協議緩衝區錯誤
- 7. 協議緩衝區挑戰
- 8. 谷歌協議緩衝區
- 9. Android和協議緩衝區
- 10. JPA協議緩衝區
- 11. Delphi協議緩衝區?
- 12. 谷歌協議緩衝區 -
- 13. 協議緩衝區和Hadoop
- 14. 協議緩衝區文件?
- 15. 協議緩衝區 - @ModelAttribute
- 16. 協議緩衝區擴展
- 17. 在Windows上安裝協議緩衝區
- 18. 谷歌的協議緩衝區在c#
- 19. 協議緩衝區在Windows C++ .Net
- 20. 如何在協議緩衝區的Python
- 21. 協議緩衝區在Angular 2項目
- 22. 一個協議字段緩衝區作爲另一個協議緩衝區字段的消息
- 23. 協議緩衝區:無固定大小緩衝區的符號?
- 24. 協議緩衝區vs平坦緩衝區
- 25. 協議緩衝區錯誤版本
- 26. 協議緩衝區:如何導入?
- 27. 協議緩衝區Wireshark插件
- 28. 公開協議緩衝區接口
- 29. 協議緩衝區:找不到包
- 30. C++ Google協議緩衝區。 RPC如何?
複製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