给出JSON文档
{"percentageAmount": .01}
Run Code Online (Sandbox Code Playgroud)
由JSONLint.com运行它会导致错误:
Parse error on line 2:
..."percentageAmount": .01}
-----------------------^
Expecting 'STRING', 'NUMBER', 'NULL', 'TRUE', 'FALSE', '{', '['
Run Code Online (Sandbox Code Playgroud)
另一方面,这是有效的:
{"percentageAmount": 0.01}
Run Code Online (Sandbox Code Playgroud)
如果将代码作为JavaScript文字分配给变量,则代码会被正确解析,但当然对于不是JSON规范的JavaScript变量,有很多东西都可以.
为什么这违反了JSON规范?
没有前导零的小数是否有效JSON?
从规格:
number = [ minus ] int [ frac ] [ exp ]
decimal-point = %x2E ; .
digit1-9 = %x31-39 ; 1-9
e = %x65 / %x45 ; e E
exp = e [ minus / plus ] 1*DIGIT
frac = decimal-point 1*DIGIT
int = zero / ( digit1-9 *DIGIT )
minus = %x2D ; -
plus = %x2B ; +
zero = %x30 ; 0
Run Code Online (Sandbox Code Playgroud)
强制数字的唯一部分int是定义为zero或1-9后跟任意数量的数字.
所以JSON Lint是正确的.
为什么这违反了JSON规范?
据我所知,作者用这种方式定义它的原因并没有在任何地方记录.
| 归档时间: |
|
| 查看次数: |
2182 次 |
| 最近记录: |