具有单个元素的JSON数组

时间:2018-06-26 02:02:13

标签: arrays json

我正在处理一个具有JSON格式输出的项目。我需要弄清JSON数组结构。因此,有些字段具有多个输入项,例如数组。如果一个元素是一个数组但只有一个值,它在结构中是否仍包含一个数组节点“ [”?

示例:

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

"Talents": [
      {
        "Items": "test"
      },
      {
        "Items": "test"
      }
    ]

如果此元素没有多个值,它将显示如下吗?

   "Talents": 
      {
        "Items": "test"
      }

对于具有单个值的数组类型元素,不会出现“ [”。有人可以澄清一下吗?

2 个答案:

答案 0 :(得分:1)

方括号(“ []”)表示可以访问的JSONArray

Talents[0]

将返回

      {
        "Items": "test"
      }

在第二种情况下,括号括起来表示一个JSON对象。如果要访问项目的价值。比你可以的

Talents.Items

OR

Talents["Items"]

将返回

"Test"

作为完整参考, JSON Syntax

答案 1 :(得分:1)

单项数组仍将包含 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 的使用者以 API 定义的约定合同/模式之外的方式发送数据(即 JSON)的情况并不少见,并且这(发送对象而不是单个对象)当只有一项时数组)是我以前见过的一个例子。 API 的所有者/开发者是否可以灵活地处理偏离 API 架构的输入,这取决于 API 的所有者/开发者。