Libjson解析整数错误
libjson parses integers incorrectly
我试图解析以下JSON数据(与JSON.stringify创建)。我使用libJSON 7。我的代码如下:
wstring jsonstr = _T("{"Id":0,"Note":"","Username":"user","Password":"pass","Enabled":true,"ProfileId":"","UserAgent":"","LastUsage":0,"Failures":0,"Abuses":0}");
JSONNode jsondata = libjson::parse(jsonstr);
auto i = jsondata.begin();
auto num = i->as_float();
int idIsNan = _isnan(num);// Nonzero here
现在我期望num == (double)0,然而,它等于1。# QNAN00000000000代替。有人知道怎么绕过这个bug吗?此外,如果我使用as_int代替as_float,它解析数据正确;所以,看起来这个错误只发生在as_float方法上。
我猜这里有点,因为您没有显示所有相关代码:
你的json结构是data
, json
似乎是你正在解析的字符串。因此json.begin()
将是该字符串中的第一个字符,而不是第一个json值。因为第一个字符是双引号,它不能被解析为浮点数->你得到你所看到的废话。也许这就是你想要的:
JSONNode data = libjson::parse(json);
auto i = data.begin(); //<-- data, not json!
auto num = i->as_float();
下次请记得给出所有相关的代码,包括所有使用的变量的定义(在本例中是'json')。
PS:您发布的json字符串以不匹配的}
结尾-这可能会混淆解析器。
相关文章:
- 给定一个整数数组,需要在Max_Heap上运行操作。得到错误"segmentation fault",有什么想法吗?(C++)
- 为什么在我的 main 函数中声明整数后我的整数数组中会出现错误?
- 为什么在将 void 指针转换为整数指针时出现分段错误
- 野牛/flex:计算器将双精度值解释为整数,所以我添加了 YYSTYPE 双精度 #define 但我有多个编译错误
- C++/错误:表达式必须具有整数或无作用域枚举类型
- Qt 错误 iso c++ 禁止指针和整数之间的比较 -permissive
- C++字符串到整数错误值可以反转吗?
- 我在c++中遇到了一个奇怪的错误,其中一个计算2个小整数加法的语句溢出到一个长值中
- (C/C++)fscanf_s从txt文件以字符形式读取数组时缺少整数参数错误
- 自定义哈希表实现-将字符串映射到整数时出现内存错误
- 我需要帮助创建一个评分系统,但它一直给我一个错误,注释掉的整数是给我带来麻烦的部分
- C++ 在方程中使用变量;错误:表达式必须具有整数或无作用域枚举类型及其他
- 谷歌启动2018,测试用例中的整数错误
- 使用递归函数 (c++) 将长字符串转换为整数时输出错误
- 运行时错误:有符号整数溢出:964632435 * 10 无法在类型 'int' 中表示
- 将矢量的整数内容打印为字符串会导致分割错误
- 错误:ISO C++禁止在指针和整数 [-fallowive] 之间进行比较
- 将整数数组作为参数传递C++错误
- 如何从返回有符号整数的函数返回错误
- 错误:整数常量的后缀Ui64无效