為什麼google protobuf不支援map的序列化和反序列化

時間 2021-05-08 02:30:19

1樓:

雖然現在3.0已經支援,但個人覺得沒有必要。使用map必然會用到更多的空間,使用repeat和屬性名結合完全可以解決map的需求

2樓:cswuyg

現在它是支援的。

proto2的文件就已經提到了Maps(Language Guide),但我用protoc2.6編譯的時候,map關鍵字無法通過編譯,protoc3.0編譯正常,proto舉例:

message Personrequired int32 id = 1required string name = 2optional string email = 3map values= 4

另外,官方文件(https://

)說了:

The map syntax is equivalent to the following on the wire, so protocol buffers implementations that do not support maps can still handle your data:

message MapFieldEntry

repeated MapFieldEntry map_field = N;

3樓:Yao Lee

1.支援map就要把key都加入到最終序列化的結果中去,並且效率也會更差(時間空間都損失了),這會削減二進位制的優勢(跟文字序列化相比),

2.map傳輸之後,對端一樣需要scheme才能解析資料,跟現有方法相比沒啥優勢,proto檔案裡的字段相當於是key

3.現有的序列化方法相當於key為整型的巢狀map,利用反射等特性也是能當map用的

4樓:

ProtoBuf 3.0 pre-release已經支援了:

Release Protocol Buffers v3.0.0-alpha-2 · google/protobuf · GitHub

5樓:魯塔弗

1. protobuf的競爭對手是xml,json等,要支援map的序列化,哪就和json之類沒有什麼區別

2. protobuf dsl定義各種schema,其實用乙個map也能表達,如果再實現map,哪就是自我否定

為什麼為什麼為什麼為什麼vn上單 沒有隊友

你怎麼這麼可愛丶 嘿嘿我也玩過一段時間 首先熟練度要很高 要有一打二的準備,對面打野肯定搞你 可以的話叫打野來反蹲畢竟你肯定能壓著對面打打野不來的話就做好視野 破敗出來就隨便打了 可以帶傳送傳去下路收人頭完美 似此星塵非昨夜 選了VN上單不就注定是被軍訓的結局嗎?誠然VN上單前期可以壓制大多數戰士上...

為什麼我長得矮?為什麼 為什麼?

大地 接受現實就好了,接受後就會好很多。人總還是對自己有不滿意的,你嫌棄自己太矮,那身高很高的,還有嫌棄自己太高的,沒用。徒增煩惱!有個抖音是150,你可以看下,就是個小個子,但是她還挺坦然接受現實,並且利用這個獲得了收益。所以接受現實 易仙 為什麼系統給我分配這個問題,是我158的身高不夠雄壯麼!...

為什麼貓咪這麼可愛?為什麼?為什麼?

邦4687587黜Q 一.大眼睛 如果你是乙個愛貓的人,相信你一定見過很多不同的貓咪。仔細回想一下,你會發現它們都有一雙迷人的大眼睛。貓咪眼睛的大小與它的臉部表面積達到了乙個很完美的比例,我們看上去會感覺很可愛,尤其是女孩子看到了,會被它迷住的哦!我有時候就會用拇指和食指抓住它的耳朵,手掌托住它的腦...