我对一段包含 float 0000000000000000E+00(基本上为零)的 JSON 遇到问题。例如,请考虑:
{
"a": 3199999999999999E+01,
"b": 0000000000000000E+00,
"c": 0,
"d": 5
}
零 float 在以下情况下会出错:
- 通过 JSONLint (http://jsonlint.com/) 运行它
- 评估它 Windows 上的浏览器,带有 jQuery.parseJSON(IE 和 Firefox,各种 jQuery 版本
将零 float 更改为任何非零值不会产生任何麻烦。
另请参阅以下 JSFiddle:http://jsfiddle.net/Gr6fq/ 。当我在 Linux 中运行它时,它可以工作。在 Windows 上,它会给出错误。
最佳答案
看起来 Javascript 解析器将最左边的前导零解释为八进制修饰符,并继续将当前标记解析为八进制数。然后它会因随后遇到的 E
token 而窒息。
使用 Firefox 5.0 的控制台:
0E+00 // Okay, parsed as 0.
00E+00 // Syntax error, identifier starts immediately after numeric literal.
关于javascript - JSON 中的浮点零 (0000000000000000E+00) 未在 jQuery (Windows)/JSONLint 中解析,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6706105/