我遇到以下困难。 我有一个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。