javascript - JSON 中的浮点零 (0000000000000000E+00) 未在 jQuery (Windows)/JSONLint 中解析

标签 javascript jquery json validation jsonlint

我对一段包含 float 0000000000000000E+00(基本上为零)的 JSON 遇到问题。例如,请考虑:

{
    "a": 3199999999999999E+01,
    "b": 0000000000000000E+00,
    "c": 0,
    "d": 5
}

零 float 在以下情况下会出错:

  • 通过 JSONLint (http://jsonlint.com/) 运行它
  • 评估它 Windows 上的浏览​​器,带有 jQ​​uery.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/

相关文章:

javascript - 谷歌地图在 Bootstrap 模态中的位置总是偏离 map 大小宽度和高度

javascript - 从我的 .json 文件/第一次 js Node 用户获取未定义的值

c# - 对于错误的类型,反序列化的 JSON 对象不为空

javascript - Angular 中的新函数构造函数如何在恢复的对象中引用导入的脚本

javascript - 在单元测试中创建具有特定属性的错误对象

javascript - 使许多图片可见的复选框

javascript - 固定 div 的宽度,即使数据很小

javascript - 如何在 jQuery 中推送、弹出和包装值?

javascript - 当我映射 fetch 调用时,我如何知道要写什么

javascript - 隐藏 DIV 并在提交时显示图像