我有一个序列化为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文档,但似乎无法找到我的代码的错误。
答案 0 :(得分:0)
我没有看过你的代码,但是你的JSON无效。键名必须用引号括起来。尝试:
Task t = Serialize::parseTask("{ \"text\": \"Some Task\", \"status\": 1 }");