2009-07-09 28 views
14

Tôi đang cố sử dụng Protocol Buffers để tuần tự hóa tin nhắn.Làm thế nào để mã hóa một Map <String, Object> bằng cách sử dụng Protocol Buffers?

Định dạng thư của tôi phải chứa Bản đồ < Chuỗi, đối tượng> mục ... nhưng làm thế nào để tôi viết định nghĩa .proto?

Theo như tôi biết, Bộ đệm giao thức không có loại Bản đồ tích hợp. Tôi có thể mô hình xung quanh bằng cách sử dụng các trường lặp lại. Nhưng vấn đề lớn tôi có là, bạn cần phải xác định tất cả các loại của bạn. Tôi muốn thông điệp của mình linh hoạt, vì vậy tôi không thể chỉ định các loại.

Bất kỳ ý tưởng nào?

+0

Đối với những gì nó có giá trị: bây giờ xuất hiện 'proto3' có 'bản đồ <,> 'cú pháp: https://developers.google.com/protocol-buffers/docs/proto3#maps –

Trả lời

10

Tôi sẽ lập mô hình một bộ tuple bằng khóa và giá trị (có thể là một trường giá trị cho mỗi loại có giá trị). Sau đó, chỉ cần có một danh sách lặp lại của loại tuple đó. Bạn sẽ cần phải xây dựng bản đồ trong mã.

Khi bạn nói bạn không thể chỉ định các loại - bạn đang nói về loại loại nào? Nếu bạn có trường tùy chọn của từng loại trong bộ tuple, thì trường đó sẽ đối phó với tất cả các nguyên thủy - và bạn có thể thông báo bản đồ bằng cách tuần tự hóa chúng thành chuỗi byte.

Có vẻ như mức độ "không có cấu trúc" mà bạn có thể không phù hợp với PB.

+1

có vẻ hợp lý ... nhưng tôi đoán bạn là đúng: PB không giống như một sự phù hợp cho vấn đề của tôi – arturh

+2

@artuh - cuối cùng bạn đã sử dụng gì cho vấn đề của mình? – ekeren

+0

Vì vậy ... Bất kỳ ý tưởng nào? –

Các vấn đề liên quan