方法介紹
protobuf的介紹在這里就不詳細(xì)介紹了,主要是俺也是剛接觸,感興趣的同學(xué)可以去搜索相關(guān)博客或者直接去看源碼以及google的官方文檔(官方文檔表示很吃力)或者去這個(gè)網(wǎng)站:https://developers.google.com/protocol-buffers/docs/overview查看相應(yīng)內(nèi)容,這里面內(nèi)容很全面,可以很方面的查詢(xún)各個(gè)函數(shù)的使用方法以及功能。本篇文章主要介紹一下本人最近做的一個(gè)protobuf轉(zhuǎn)json的小工具,下面進(jìn)行拆分講解,完整的代碼在:git@github.com:chengfeiGitHub/P-bToJson.git。
protobuf自帶一個(gè)MessageToJson()的函數(shù)可以將對(duì)應(yīng)的消息轉(zhuǎn)換成json,一般情況下該函數(shù)可以滿(mǎn)足轉(zhuǎn)換需求。但是,最近項(xiàng)目的要求使用MessageToJson()無(wú)法實(shí)現(xiàn),主要要求是:
選擇特定的messge進(jìn)行轉(zhuǎn)換(主要是提供包含需求字段號(hào)的set或者vector,根據(jù)提供的字段號(hào)進(jìn)行轉(zhuǎn)換);
對(duì)于Enum類(lèi)型的消息,可以選擇顯示枚舉名或者枚舉值;
對(duì)于字段值為0的字段,可以選擇顯示或者不顯示.
主要有這三個(gè)要求,對(duì)于功能2、3現(xiàn)在最新的protobuf應(yīng)該是支持的,但是沒(méi)有功能1的實(shí)現(xiàn)方式,所以只好自己寫(xiě)一個(gè)小工具。
說(shuō)明:本工具由C++編寫(xiě)完成
延伸閱讀
- ssh框架 2016-09-30
- 阿里移動(dòng)安全 [無(wú)線安全]玩轉(zhuǎn)無(wú)線電——不安全的藍(lán)牙鎖 2017-07-26
- 消息隊(duì)列NetMQ 原理分析4-Socket、Session、Option和Pipe 2024-03-26
- Selective Search for Object Recognition 論文筆記【圖片目標(biāo)分割】 2017-07-26
- 詞向量-LRWE模型-更好地識(shí)別反義詞同義詞 2017-07-26
- 從棧不平衡問(wèn)題 理解 calling convention 2017-07-26
- php imagemagick 處理 圖片剪切、壓縮、合并、插入文本、背景色透明 2017-07-26
- Swift實(shí)現(xiàn)JSON轉(zhuǎn)Model - HandyJSON使用講解 2017-07-26
- 阿里移動(dòng)安全 Android端惡意鎖屏勒索應(yīng)用分析 2017-07-26
- 集合結(jié)合數(shù)據(jù)結(jié)構(gòu)來(lái)看看(二) 2017-07-26