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

数组可以是顶级JSON文本吗?

海雪松
2023-03-14
问题内容

根据这篇文章中的辩论:[json-conversion-in-
javascript]

结果对我来说是这样的:

[[25,32],[25,32],[25,32],[25,32],[25,32],[25,32],[25,32],[25,32],[25,32],[25,32]]

就我所见,这很好。它可能看起来有些怪异,但这主要是因为JSON在对象中使用了很多,它们的符号略有不同。您可以评估字符串并返回数组结构,所以对我来说很好。


问题答案:

是的,数组作为顶级JSON文本是合法的。

有三个定义JSON的标准文档:RFC 4627,RFC
7159
(已淘汰RFC
4627)和ECMA-404。它们在允许使用的顶层元素方面有所不同,但是都允许将对象或数组作为顶层元素。

  • RFC 4627: 对象或数组。
    “ JSON文本是序列化的对象或数组。”

  • RFC 7159: 任何JSON值。
    “ JSON文本是序列化的值。”

  • ECMA-404: 任何JSON值。
    “ JSON文本是由符合JSON值语法的Unicode代码点形成的令牌序列。”



 类似资料:
  • 有可能用json. Decoder解码顶级JSON数组吗? 或者阅读整个JSON和JSON。在这种情况下,解组是唯一的方法吗? 我已经阅读了这个问题中公认的答案,不知道如何将其与顶级JSON数组一起使用

  • 以下是我目前掌握的情况: 其中,我有一行,它应该取索引处的数组的值,并将其转换为长度为5的数组。因此,如果,它应该创建一个长度为5的数组。但是,它会抛出一个非法的表达式开始错误。 我也尝试使用临时变量来帮助声明多个数组,但是我得到了更多的错误以及表达式的非法开始。 有没有什么方法可以在不使用多维数组的情况下解决这个问题呢? 提前道谢。

  • 问题内容: 我试图编写一个Int扩展名以将Int限制在特定范围内,如下所示: 我遇到了编译器错误,过了一会儿我才意识到这在这里被解释为,这是最低的常量。 我可以重新实现,以避免/,但是我很好奇:有没有办法可以从扩展中引用那些? 问题答案: 您可以在前面加上模块名称: 只是为了好玩:您得到的结果与 使用的方法。

  • 问题内容: 在下面的视频中,Microsoft PDC演示者在时间标记21:40处说,包装所有JSON以使其不是顶级数组很重要: https://channel9.msdn.com/Events/PDC/PDC09/FT12 解开顶层阵列的风险是什么? 我应该如何检查并确定自己是否脆弱?我从第三方购买了许多组件,并且有外部厂商来开发我的代码。 问题答案: 微软之所以这样说,是因为他们尚未修补浏览器

  • 问题内容: 我试图仅使用angular命中html形式表单上的“提交”,然后将数据写入json文件。我知道我可以使用angular读取json文件,但不确定是否要创建文件。控制器中的onSubmit(): 的HTML: 不会创建sample_data.json,如果我创建一个空文件,它也不会填充数据。$ scope.model绝对包含数据。如果有人可以提供帮助,将不胜感激。谢谢,阿隆。 问题答案:

  • 问题内容: 我有一个包含项目列表的JSON文件。存储在此文件中的唯一东西是作为数组的项目。例如: 我想为此定义一个架构文件。这看起来很好,因为可以将初始类型设置为数组,并且我可以将项目定义为类型。但是我想引用项目json文件中的架构。不幸的是,它不是一个对象,因此我无法添加密钥。我当然可以使json一个对象只有一个具有数组值的键,但这似乎不是一个好的设计。 模式系统似乎存在设计错误,还是不支持顶级