0

我有一个序列化为 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 文档,但似乎找不到我的代码有什么问题。

4

1 回答 1

0

我没有查看您的代码,但您的 JSON 无效。键名必须用引号括起来。尝试:

Task t = Serialize::parseTask("{ \"text\": \"Some Task\", \"status\": 1 }");
于 2015-03-12T21:18:27.337 回答