protobuf 的序列化與反序列化

bool ParseFromString(const string& data);

bool SerializeToString(string* output) const:


ParseFromString() 函數是protobuf 提供的一個C++ API,它的功能就是將string 裏面的數據反序列化(解析)到指定的消息結構類中。它其實是一個消息結構類的成員函數,反序列化之後,該消息結構類中的數據成員將會被填充,且有效。


若要ParseFromString() 函數成功執行並返回true 。還需要注意一點就是輸入參數的數據構造要正確,不能多一個也不是少一個字節。

我之前就因爲將data 的長度resize() 太大,導致了該函數返回false。不過消息結構類對象中的數據還是被填充好的。而且可以正常使用,has_XXX() 也會返回true。


SerializeToString() 函數是protobuf 提供的一個C++ API,它的功能與parseFromString() 函數相對應,是將消息結構的數據序列化(填充)到output 所指向的string  對象中。在string 對象中以二進制的形式存儲。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章