【发布时间】:2014-11-13 07:33:55
【问题描述】:
给定 JSON 文档
{"percentageAmount": .01}
通过 JSONLint.com 运行它会导致错误:
Parse error on line 2:
..."percentageAmount": .01}
-----------------------^
Expecting 'STRING', 'NUMBER', 'NULL', 'TRUE', 'FALSE', '{', '['
另一方面,这是有效的:
{"percentageAmount": 0.01}
如果将代码作为 JavaScript 文字分配给变量,则代码会被正确解析,但是对于非 JSON 规范的 JavaScript 变量,当然有很多事情是可以的。
为什么这违反 JSON 规范?
【问题讨论】:
-
查看
number的生产json.org -
因为 JSON 代表 JavaScript Object Notation,所以它是 JavaScript 的一个子集,它应该正常验证它。可能是因为 json 用于通过 .01 值无效的服务器端(php、asp)交换数据
-
一般来说,JSON 是 Javascript 文字符号的一个大大简化的子集。
-
@albanx — 由于包含
0.1的数字集是包含.1和0.1的数字集的子集,因此作为子集并不意味着.1是有效的。 JSON 是(在正确的上下文中)有效的 JavaScript。反过来不一定正确。 -
不仅仅是 Javascript 使用 JSON。我想知道当每个平台都有编码和解码 JSON 的功能时,人们怎么会产生这种错误......
标签: javascript json