rapidJson 断言失败
assert is failing for rapidJson
我正在尝试使用 RapidJson 在 c++ 中解析 json 数据。我不知道我哪里做错了,但我的断言失败了。当我尝试调试它的显示 sigabrt 时它运行断言行。社区 我感谢您的见解。感谢您回答这个幼稚的问题。
#include <iostream>
#include <assert.h>
#include "hpdf.h"
#include "rapidjson/document.h"
#include "rapidjson/writer.h"
#include <rapidjson/istreamwrapper.h>
#include <fstream>
int main() {
std::ifstream ifs("/home/is/..../test.json");
rapidjson::IStreamWrapper isw(ifs);
rapidjson::Document document;
document.ParseStream(isw);
assert(document.IsObject());
rapidjson::Value::MemberIterator hello = document.FindMember("timeStamp");
std::string vali = document["timestamp"].GetString();
std::cout << vali << std::endl;
return 0;
}
我也尝试过使用 rapidJson 文件流,但在同一行再次失败。
[
{
"timeStamp": "...",
"alertType": "...",
"instanceId": 8
}
]
99% 的人认为您的 JSON 是错误的。
然而,"timeStamp"
与 "timestamp"
不同
详细了解 JSON。
您的输入文档(以 [
开头)是一个包含单个 JSON 对象的 JSON 数组。
我建议使用 document.GetType()
然后对其结果进行不同的处理(可能使用 switch
)。
所以document.IsObject()
为假是正常的。对于您的输入 document.IsArray()
应该是真实的,并且您可以通过 document[0]
访问该数组中的 JSON 对象
伙计们,我想我已经解决了这个问题。你们从一开始就是对的。我的 data.json 有问题。当 .json 文件中没有 [] 时,此库有效。我删除了方括号,一切似乎都正常。感谢您的时间和见解。感谢您的所有回复。
我正在尝试使用 RapidJson 在 c++ 中解析 json 数据。我不知道我哪里做错了,但我的断言失败了。当我尝试调试它的显示 sigabrt 时它运行断言行。社区 我感谢您的见解。感谢您回答这个幼稚的问题。
#include <iostream>
#include <assert.h>
#include "hpdf.h"
#include "rapidjson/document.h"
#include "rapidjson/writer.h"
#include <rapidjson/istreamwrapper.h>
#include <fstream>
int main() {
std::ifstream ifs("/home/is/..../test.json");
rapidjson::IStreamWrapper isw(ifs);
rapidjson::Document document;
document.ParseStream(isw);
assert(document.IsObject());
rapidjson::Value::MemberIterator hello = document.FindMember("timeStamp");
std::string vali = document["timestamp"].GetString();
std::cout << vali << std::endl;
return 0;
}
我也尝试过使用 rapidJson 文件流,但在同一行再次失败。
[
{
"timeStamp": "...",
"alertType": "...",
"instanceId": 8
}
]
99% 的人认为您的 JSON 是错误的。
然而,"timeStamp"
与 "timestamp"
详细了解 JSON。
您的输入文档(以 [
开头)是一个包含单个 JSON 对象的 JSON 数组。
我建议使用 document.GetType()
然后对其结果进行不同的处理(可能使用 switch
)。
所以document.IsObject()
为假是正常的。对于您的输入 document.IsArray()
应该是真实的,并且您可以通过 document[0]
伙计们,我想我已经解决了这个问题。你们从一开始就是对的。我的 data.json 有问题。当 .json 文件中没有 [] 时,此库有效。我删除了方括号,一切似乎都正常。感谢您的时间和见解。感谢您的所有回复。