无法使protobuf ParseFromString正常工作

时间:2019-05-29 15:47:40

标签: c++ protocol-buffers

我遇到以下困难。 我有一个pObj,我使用SerializeToString对其进行序列化,然后作为测试,我尝试使用ParseFromString对字符串进行反序列化。我希望在反序列化之后,对象将包含与原始pObj相同的数据。不会的新对象包含空值。 ParseFromString返回true。这是伪代码:

我尝试使用ParsePartialFromString-无效

    string body;
    int n1 = pObj->_objectSetType.ByteSizeLong();
    result = pObj->_objectSetType.SerializeToString(&body);
    PriceTicObjectSet* pnewObj = new PriceTicObjectSet;
    result = pnewObj->_objectSetType.ParseFromString(body);
           if ( !IsEqual(pObj, pnewObj) printf ("Error !!!!\n");

一些解释。 PriceTicObjectSet是protobuf类的一个瘦包装。 原始pObj充满了一些数据。然后,我使用SerializeToString将对象序列化为字符串。然后,为了测试是否合理,创建另一个PriceTicObjectSet实例,并将上一步中的字符串反序列化为新对象。我希望pObj和pnewObj的内容相同。但事实并非如此。事实证明pnewObj根本没有初始化。 这两个函数SerializeToString和ParseFromString都返回true。

0 个答案:

没有答案