有沒有什麼辦法來序列字典使用協議緩衝區,或者我會,如果我需要使用儲蓄?字典在協議緩衝區
字典在協議緩衝區
回答
人們通常寫下字典作爲鍵 - 值對的列表,然後重建另一端的字典。
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