Javascript 单元素JSON数组

Javascript 单元素JSON数组,javascript,arrays,json,Javascript,Arrays,Json,我正在从事一个有JSON格式输出的项目。我需要弄清楚JSON数组结构。因此,有些字段像数组一样是多条目的。如果一个元素是数组,但只有一个值,那么它是否仍然在结构中包含数组节点“[” 例如: 这是一个示例JSON元素,它是一个数组,具有多个值 "Talents": [ { "Items": "test" }, { "Items": "test" } ] 如果此元素没有多个值,它是否会显示如下 "Tale

我正在从事一个有JSON格式输出的项目。我需要弄清楚JSON数组结构。因此,有些字段像数组一样是多条目的。如果一个元素是数组,但只有一个值,那么它是否仍然在结构中包含数组节点“[”

例如:

这是一个示例JSON元素,它是一个数组,具有多个值

"Talents": [
      {
        "Items": "test"
      },
      {
        "Items": "test"
      }
    ]
如果此元素没有多个值,它是否会显示如下

   "Talents": 
      {
        "Items": "test"
      }
“[”不是针对具有单个值的数组类型元素出现的。有人能澄清一下吗?

方括号(“[]”)表示JSONArray,在您的情况下,它可以像

Talents[0]
会回来的

      {
        "Items": "test"
      }
"Test"
在第二种情况下,曲线括号表示一个JSON对象

Talents.Items

会回来的

      {
        "Items": "test"
      }
"Test"
作为完整的参考,

单项目数组仍将包含JSON格式的数组括号,因为它们仍然是数组。换句话说,没有这样的本机机制将单项目数组转换为非数组表示形式。因此,对于单项目示例,它的表示形式如下:

"Talents": [
  {
    "Items": "test"
  }
]
您可以通过一些简单的代码轻松测试这一点:

let jsonSingleItem = { "Talents": [ {"Items": "item1"} ] };
let arraySingleItem = [ {"Items": "item1"} ];

console.log(JSON.stringify(jsonSingleItem));
console.log(jsonSingleItem);
console.log(arraySingleItem);
这将产生以下输出:

{"Talents":[{"Items":"item1"}]}
{ Talents: [ { Items: 'item1' } ] }
[ { Items: 'item1' } ]
因此在所有情况下(字符串化JSON对象、本机JSON和javascript数组)单个项仍然在数组中


注意:API的使用者发送数据(即JSON)的方式超出了API定义的约定契约/模式,这并不少见(当只有一个项目时,发送一个对象而不是单个对象数组)这是我以前见过的一个例子。API的所有者/开发人员将决定他们是否能够灵活地处理与API模式不同的输入。

这里是JSON的简要介绍。通常情况下,是的。它仍然是一个包含一个项的数组。但这取决于您从何处获得此JSON内容,它应该是在你所使用的任何东西的文档中都会有说明。这个答案并没有回答这个问题:只有一个项目的元素应该存储在数组中还是作为对象本身。我有同样的答案question@Rick这真的是你问题的答案吗?