protobuf中資料格式與型別

2021-09-02 18:52:22 字數 948 閱讀 2796

訊息格式

訊息由至少乙個字段組合而成,類似於c語言中的結構體,每個欄位都有一定的格式:

資料型別 欄位名稱 = 唯一的編號標籤值;

欄位名稱:protobuf建議以下劃線命名而非駝峰式

唯一的編號標籤:代表每個欄位的乙個唯一的編號標籤,在同乙個訊息裡不可以重複。這些編號標籤用與在訊息二進位制格式中標識你的字段,並且訊息一旦定義就不能更改。需要說明的是標籤在1到15範圍的採用乙個位元組進行編碼,所以通常將標籤1到15用於頻繁發生的訊息字段。編號標籤大小的範圍是1到229。此外不能使用protobuf系統預留的編號標籤(19000 ~19999)。

資料型別

.proto型別 c++型別 備註

double double 64位浮點數

float float 32位浮點數

int32 int32 32位整數

int64 int64 64位整數

uint32 uint32 32位無符號整數

uint64 uint64 64位無符號整數

sint32 int32 32位整數,處理負數效率比int32更高

sint32 sint64 64位整數,處理負數效率比int64更高

fixed32 uint32 總是4個位元組。如果數值總是比總是比228大的話,這個型別會比uint32高效。

fixed64 uint64 總是8個位元組。如果數值總是比總是比256大的話,這個型別會比uint64高效。

sfixed32 int32 總是4個位元組

sfixed64 int64 總是8個位元組

bool bool 布林型別

string string 乙個字串必須是utf-8編碼或者7-bit ascii編碼的文字

bytes string 處理多位元組的語言字元、如中文

enum enum 列舉

message object of class 自定義的訊息型別

第三方資料格式庫protobuf

protobuf是一種高效的資料格式,平台無關 語言無關 可擴充套件,可用於 rpc 系統和持續資料儲存系統。protobuf是protocol buffer的簡稱,它是google公司於2008年開源的一種高效的平台無關 語言無關 可擴充套件的資料格式,目前protobuf作為介面規範的描述語言,...

類xml資料格式解析

需要解析一種類xml的資料檔案,資料格式1如下 資料域,多個 phi rcs ang12 3234 phi rcs ang34 5456 資料格式2 xtype comment condition 項1 值1 項2 值2 condition mea key3 value3 key4 value4 m...

Json資料格式處理通用類

專案中經常會用到 json 格式的資料,在此提煉出公共的 json 與 bean 之間的互轉的公共類 以下使用的時 jackson 的開源包 使用的 jackson的 jar 包 jackson databind 2.1.1.jar jackson annotation 2.1.1.jar jack...