gpt4 book ai didi

c++ abort() 已在 rapidjson 上被调用

转载 作者:行者123 更新时间:2023-11-28 05:20:19 25 4
gpt4 key购买 nike

我正在做一些代码,我需要使用 rapidjson 来获取 json 值

首先我从文件中检索信息

   ifstream  myReadFile;
myReadFile.open("results.txt");
string output;
if (myReadFile.is_open()) {
while (!myReadFile.eof()) {
myReadFile >> output;
}
}
myReadFile.close();

results.txt 示例:

[{"ID":1,"Name":"SomeName","Description":"Pub"}]

然后我用rapidjson过滤信息,

const char * json = output.c_str();
Document document;
document.Parse(json);
cout << document["ID"].GetInt(); //Error on the line
cout << document["Name"].GetString());

但我得到这个错误:调试错误! abort() 已被调用

想法?

谢谢你的时间

最佳答案

你的 json 是一个数组,但你正试图解析它,因为它不是!

要么从 json 字符串中删除方括号,然后您的代码应该可以工作,要么解析数组:

for (SizeType i = 0; i<document.Size(); i++)
{
const rapidjson::Value &data_vec = document[i];
int id = data_vec["ID"].GetInt();
std::string name = data_vec["Name"].GetString();
}

关于c++ abort() 已在 rapidjson 上被调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41657389/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com