Невозможно заставить протобуф ParseFromString работать правильно - PullRequest
0 голосов
/ 29 мая 2019

Я испытываю следующие трудности.У меня есть 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 и десериализуйте строку из предыдущего шага в новый объект.Я ожидаю, что содержимое bothe pObj и pnewObj будет идентичным.Но это не так.Оказывается, pnewObj вообще не инициализируется.Обе функции SerializeToString и ParseFromString возвращают true.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...