【发布时间】:2021-11-20 02:31:32
【问题描述】:
{"a" : 01} 或 {"a" : -000.1} 是无效的,但 JQ 可以接受并将其解释为 {"a" : 1} 和 {"a" : -0.1}。
这是设计使然还是错误?
【问题讨论】:
-
确实,根据RFC 7159: The JavaScript Object Notation (JSON) Data Interchange Format, Section 6 "一个数字用十进制数字表示,以10为基数。它包含一个整数部分,前面可以加上一个可选的减号,后面可以跟着一个减号由小数部分和/或指数部分。前导零是不允许的。”。所以,我想,严格来说,
jq不应该接受这一点。 -
RFC 7159 9. 解析器“JSON 解析器将 JSON 文本转换为另一种表示形式。JSON 解析器必须接受所有符合 JSON 语法的文本。JSON 解析器可以接受非 JSON 形式或扩展。”在 rfc8259 中相同
标签: jq