当前位置: 首页 > 面试题库 >

可以引用JSON数字吗?

彭霄
2023-03-14
问题内容

JSON编号周围可以有引号吗?在大多数搜索链接中,数字似乎不需要“引用”引号。但是,解析器应该同时接受"attr" : 6"attr" : "6"吗?

如果MyParser有一种方法getInt可以获取给定键的数字,那么在两种情况下都应该MyParser.getInt("attr")返回6,还是在后一种情况下抛出异常?


问题答案:

在JSON中,6数字为6。"6"是一个包含 数字字符串 。因此,问题的答案是
“可以引用json数字吗?” 基本上是“否”,因为如果用引号引起来,它们就不再是数字了。 6

但是,解析器应该同时接受"attr" : 6"attr" : "6"吗?

是的,但是它们定义了不同的事物。第一个attr使用值6(数字)定义属性。第二个定义了一个attr带有值的属性"6"(一个包含一位数字的字符串)。

(最初询问的问题attr: "6"是,这是无效的,因为属性名称必须在JSON中用双引号引起来。)

如果MyParser具有方法getInt来获取给定键的数字,则MyParser.getInt(“
attr”)在这两种情况下均应返回6还是在后一种情况下引发异常?

这是为个人提供的解析器,基本上之间选择一个设计决策getInt是严格(抛出一个异常,如果你试试"attr": "6")或松散的(胁迫"6"6并返回一个)。JavaScript通常是松散的,因此可能会有松散的说法。相反,JavaScript宽松的事实有时会引起麻烦,这可能是严格的理由。



 类似资料:
  • 问题内容: 最近开始深入研究JSON,而我目前正在尝试使用数字作为“标识符”,但效果不太好。可以正常工作,而不能。 有什么办法可以通过以下方式做到这一点?这样的事情会让我的生活更轻松。当然,还有其他解决方法,但是这种方法是首选。 问题答案: JSON仅允许键名称为字符串。这些字符串可以包含数值。 您虽然没有使用JSON。您有一个JavaScript对象文字。您 可以 将标识符用于键,但是标识符不能

  • 问题内容: 我们最近切换到了新的JSON2 perl模块。我以为一切都归还了。但是我遇到了一些情况,其中perl创建的json字符串中的数字()作为未引用的数字返回。 出于好奇: 是否有人知道为什么存在这种情况以及json模块如何决定是否引用值? 问题答案: 您可以通过执行以下操作将其强制为字符串: 例如: 看起来旧版本的JSON具有可以设置的自动转换功能。您没有设置为真值吗?

  • 问题内容: 这是我从.NET上的请求获取的JSON: 我想使用LINQ来捕获字段“ url”。我有很多要求,有点不同。因此,我不会每次创建C#类并将其反序列化。 它是提取单个字段的一种方法吗?谢谢! 问题答案: 无需Linq,只需使用(使用Json.Net) Linq版本不太可读 文档: LINQ to JSON

  • 问题内容: 我认为外键意味着单行必须引用单行,但是我正在查看某些表,但事实并非如此。表1在表2的列2上有一个具有外键约束的列1,但是在表2中有很多记录在列2中具有相同的值。在column2上也有非唯一索引。这是什么意思?外键约束是否仅表示至少一条记录必须存在,且在正确的列中具有正确的值?我认为这意味着必须有一个这样的记录(不确定空值是否适合图片,但目前我对此不太担心)。 更新:显然,此行为特定于M

  • 为什么我不能以这种方式使用引导可编辑表? 在这个小提琴https://jsfiddle.net/aleksacavic/03agu1ex/1/它的工作原理是,当单击时,表格单元格处于编辑模式。但相同的代码在我的网站上不工作?我错过了什么?如我所见,在我这边,当单击时,单元格不允许更改类,只有表线程被突出显示,其他元素(输入字段)不被创建。谢啦

  • 问题内容: 根据这篇文章中的辩论:[json-conversion-in- javascript] 结果对我来说是这样的: 就我所见,这很好。它可能看起来有些怪异,但这主要是因为JSON在对象中使用了很多,它们的符号略有不同。您可以评估字符串并返回数组结构,所以对我来说很好。 问题答案: 是的,数组作为顶级JSON文本是合法的。 有三个定义JSON的标准文档:RFC 4627,RFC 7159 (