2009-07-09 34 views
14

我試圖使用Protocol Buffers進行消息序列化。如何使用Protocol Buffers對Map <String,Object>進行編碼?

我的消息格式應包含地圖<字符串,Object>中的條目......但我怎麼寫.proto定義是什麼?

據我所知,Protocol Buffers的不具有一個內置的地圖類型。我可以使用重複字段對其進行建模。但是我遇到的最大問題是,您需要定義所有類型。我希望我的信息靈活,所以我不能指定類型。

任何想法?

+0

對於它的價值:現在看來「proto3」有'地圖<,>`語法:https://developers.google.com/protocol-buffers/docs/proto3#maps – 2016-07-12 13:41:04

回答

10

我模型鍵和值(每類大概一個值字段的值可以是)一個元組。然後只是有一個重複列表的元組類型。你需要在代碼中構建地圖本身。

當你說你不能指定類型 - 你說的是什麼樣的類型?如果你在元組每種類型的可選字段,然後,將處理所有的原語 - 你能通過它們序列化到一個字節字符串映射消息。

這聽起來像的水平「非結構」你可能不是一個很好的適合PB雖然。

+1

聽起來有道理...但我猜你是正確的:PB看起來不太適合我的問題 – arturh 2009-07-09 11:51:46

相關問題