为什么 rapidjson 无法获取此整数值

why rapidjson fails to get this integer value

本文关键字:整数 获取 rapidjson 为什么      更新时间:2023-10-16

我很惊讶以下代码没有按预期工作,我记得我有类似的json,其中包含很多数字,但我不知道它何时停止工作!!

std::string_view jsonStr = "{ "num": 1, "str": 's' }";
rapidjson::Document doc;
doc.Parse(jsonStr.data());
std::cout << "num : " << doc["num"].GetUint() << std::endl;

输出 :

0

如果我删除str,我会得到1

我做错了什么吗?

这不是有效的 JSON。

字符串由引号括起来,而不是单引号。

有关架构,请参阅 https://json.org。

然后在您的 JSON 解析库中检查错误代码:它会在某个地方告诉您这一点,而您忽略了它。

默认情况下,损坏文档不存在的属性上的GetUint()将返回零,或者作为库中某些"未定义行为"的一部分返回零;阅读其文档以了解是哪个。