C++ abort() 已在 RapidJSON 上调用
c++ abort() has been called on rapidjson
我正在做一些代码,我需要使用 rapidjson 才能获取 json 值
首先我从文件中检索信息
ifstream myReadFile;
myReadFile.open("results.txt");
string output;
if (myReadFile.is_open()) {
while (!myReadFile.eof()) {
myReadFile >> output;
}
}
myReadFile.close();
结果示例.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();
}
相关文章:
- 什么时候调用组成单元对象的析构函数
- 对RValue对象调用的LValue ref限定成员函数
- 为什么使用 "this" 指针调用派生成员函数?
- 函数调用中参数的顺序重要吗
- OpenGL - 在抛出"__gnu_cxx::recursive_init_error"实例后终止调用?
- 基于另一个成员参数将函数调用从类传递给它的一个成员
- 为什么我的C#代码在调用回C++COM直到Task时会暂停.等待/线程.加入
- 在c++类上调用void函数
- 为什么 std::unique 不调用 std::sort?
- 调用专用模板时出错"no matching function for call to [...]"
- 选择要调用的构造函数
- C++为什么尽管我调用了void函数,它却不起作用
- 构造函数正在调用一个使用当前类类型的函数
- 变量没有改变?通过向量的函数调用
- 没有为自己的结构调用列表推回方法
- 调用'begin(int [n])'没有匹配函数
- 什么时候调用析构函数
- 如何用参数值调用函数(仅在运行时已知)
- std::cout.imbue()多重调用
- C++ abort() 已在 RapidJSON 上调用