У меня есть задача, сериализованная как JSON:
{
text: "Some task",
status: 1
}
Я использую эту функцию внутри Serialize
Пространство имен:
Task parseTask(std::string task) {
Json::Value root;
Json::Reader reader;
if(reader.parse(task, root, false)) {
std::string text = root["text"].asString();
int status = root["status"].asInt();
Task result(text);
if(status == 1) result.setCompleted();
return result;
}
}
Я вызываю функцию следующим образом:
Task t = Serialize::parseTask("{ text: \"Some Task\", status: 1 }");
И составление с -ljsoncpp
вариант. Однако я получаю:
terminated by signal SIGSEGV (Address boundary error)
Я просматривал документацию по JsonCpp, но не могу найти, что случилось с моим кодом.
Я не посмотрел ваш код, но ваш JSON недействителен. Имена ключей должны быть заключены в кавычки. Пытаться:
Task t = Serialize::parseTask("{ \"text\": \"Some Task\", \"status\": 1 }");
Других решений пока нет …