为什么 rapidjson 获取不到这个整数值

why rapidjson fails to get this integer value

我很惊讶下面的代码没有按预期工作,我记得我有类似的 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() 在损坏文档的不存在 属性 上将默认返回零,或者作为库中某些 "undefined behaviour" 的一部分返回零;阅读它的文档以找出哪个。