是否需要引用JSON字符串(仅限数字)?

是否需要引用JSON字符串(仅限数字)?,json,Json,JSON对象是否可以忽略仅包含数字的字符串的引号?例如,解析器应该处理{“name”:0}而不是{“name”:“0”} 我们有一个内部解析器,如果没有引用字符串值,它就会失败。但是,我们已经使用第三方解析器测试了上述内容,该解析器在解析{“name”:0}并以字符串形式返回值(即“0”)时没有问题 我不确定我们是否应该坚持JSON数据包的发送者总是引用字符串值,还是应该修改解析器以同时使用带引号和不带引号的值 如果有任何指向“官方”文档的提示,我将不胜感激。该官员说数字是不带引号的。如果它被引

JSON对象是否可以忽略仅包含数字的字符串的引号?例如,解析器应该处理{“name”:0}而不是{“name”:“0”}

我们有一个内部解析器,如果没有引用字符串值,它就会失败。但是,我们已经使用第三方解析器测试了上述内容,该解析器在解析{“name”:0}并以字符串形式返回值(即“0”)时没有问题

我不确定我们是否应该坚持JSON数据包的发送者总是引用字符串值,还是应该修改解析器以同时使用带引号和不带引号的值


如果有任何指向“官方”文档的提示,我将不胜感激。

该官员说数字是不带引号的。如果它被引用,它不是一个数字,而是一个字符串。e、 g.
“0”
是字符串,而不是数字。

0
表示数字零<代码>“0”表示字符串零。两者都是有效的JSON。如果解析器不接受数字,那么它就是不一致的。官方文档是json.org,它声明一个值可以是字符串、数字或其他一些东西,如真/假/空(不带引号)。@torazaburo,现在请将其作为答案发布。@torazaburo感谢您的评论。然而,这并不是我们想要的。比如说,一个规范,例如谷歌的云打印CJT格式,指定给定的值是一个字符串,然后Chrome发送一些看起来像数字的东西(即值周围没有引号)——我们应该拒绝它,还是应该更宽容一些,照原样去做?我们熟悉json.org,它非常清楚双qouted字符串。但是,一些解析器(例如.NET)在处理非引号字符串时没有问题。我们只是想知道这是否是一种常见的做法。您混淆了什么是有效的JSON,以及某些JSON是否满足特定的模式。
0
“0”
都是有效的JSON值,解析器应该处理它。如果您的模式或某些API定义要求或承诺某些值应为字符串,则应将其引用为是,如果不是,则模式一致性检查器应报告该错误。对不起,如果我遗漏了什么。