Có cách nào để tuần tự hóa từ điển bằng bộ đệm giao thức hay tôi sẽ phải sử dụng Tiết kiệm nếu cần?Từ điển trong bộ đệm giao thức
Trả lời
Mọi người thường viết từ điển dưới dạng danh sách các cặp khóa-giá trị, sau đó xây dựng lại từ điển ở đầu kia.
message Pair {
optional string key = 1;
optional string value = 2;
}
message Dictionary {
repeated Pair pairs = 1;
}
Có cách nào để làm điều tương tự với loại động không? Tôi có một 'Dictionary
Vâng, không. Protobuf không phải là một giao thức serialization đối tượng chung. Bạn cần định nghĩa các thông điệp protobuf cho tất cả các dữ liệu mà bạn muốn tuần tự hóa. (Thành thật mà nói, nếu bạn có một bản đồ
@Mike Bạn sẽ phải tạo một trường cho mọi loại * có thể *, đó là một lỗi chỉ đang chờ xảy ra. –
Bạn có thể kiểm tra gói ProtoText.
Giả sử bạn muốn tuần tự hóa một dict person_dict
thành đối tượng được xác định trước PersonBuf
đối tượng protobuf được xác định trong mô-đun personbuf_pb2
.
Trong trường hợp này, sử dụng ProtoText,
import ProtoText
from personbuf_pb2 import PersonBuf
obj = PersonBuf()
obj.update(person_dict)
Đối với người tìm câu trả lời trong tương lai, ProtoBuf now supports Maps natively:
message MapMessage
{
map<string, string> MyMap = 1;
}
Xin lưu ý rằng Maps vẫn không thể lặp lại được. – mattes
- 1. Bộ đệm giao thức Delphi?
- 2. Bộ đệm giao thức Scala biên dịch
- 3. Bộ đệm giao thức với JPA
- 4. Boost.Asio với bộ đệm giao thức google
- 5. Bộ đệm giao thức Google so sánh
- 6. Dữ liệu/bộ đệm đệm giao thức Dump
- 7. Bộ đệm giao thức của Google rất lớn trong python
- 8. Mở rộng bộ đệm giao thức trong Java
- 9. Ghi tăng dần đối tượng Bộ đệm Giao thức
- 10. Bộ đệm giao thức của Google - Bộ đệm kích thước cố định?
- 11. Cài đặt bộ đệm giao thức trên Windows
- 12. Bộ đệm giao thức của Google được biên dịch
- 13. Trường lặp lại Bộ đệm giao thức của Google C++
- 14. Bộ đệm giao thức của Google so với ASN.1
- 15. C++ Bộ đệm giao thức của Google: serialize thành char *?
- 16. Bộ đệm giao thức: Cách xác định loại ngày?
- 17. Các giải pháp thay thế cho Bộ đệm giao thức
- 18. Cách tạo bộ đệm giao thức theo Android NDK
- 19. tại sao byte đệm giao thức là chuỗi trong c + +?
- 20. Không thể biên dịch ví dụ từ bộ đệm giao thức google
- 21. Gọi các hàm Java từ R bằng RProtoBuf (Bộ đệm giao thức)
- 22. C# từ điển giao nhau
- 23. Trong Bộ đệm giao thức của Google, tệp/mô hình giao thức phù hợp cho Ngoại lệ là gì?
- 24. Thiếu tệp đầu vào với protoc trong bộ đệm giao thức
- 25. Hình phạt về hiệu suất của getSerializedSize() trong Bộ đệm giao thức
- 26. Phân tích cú pháp trong tệp văn bản cho Bộ đệm giao thức của Google
- 27. Có một triển khai thực hiện Bộ đệm Giao thức Google chất lượng trong .NET
- 28. Làm thế nào để đọc bộ đệm giao thức GTFS trong PHP?
- 29. Bộ đệm giao thức C# .net - hỗ trợ protobuf-net để tuần tự hóa từ điển các giá trị đối tượng?
- 30. Bộ nhớ giao dịch từ từ điển C# chứa trong một đối tượng tĩnh
trùng lặp http://stackoverflow.com/questions/3874024/how-does- protobuf-net-support-for-dictionary-keyvaluepair-works –
Không thực sự trùng lặp. Câu hỏi đó là về các ràng buộc .net. OP không chỉ định môi trường ngôn ngữ. – JesperE