javascript - 具有单个元素的 JSON 数组

标签 javascript arrays json

我正在开发一个具有 JSON 格式输出的项目。我需要清楚 JSON 数组结构。所以有些字段像数组一样是多个条目。如果一个元素是一个数组但只有一个值,它是否仍然在结构中包含一个数组节点'['?

例子:

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

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

如果这个元素没有多个值,它会如下所示吗?
   "Talents": 
      {
        "Items": "test"
      }

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

最佳答案

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

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

关于javascript - 具有单个元素的 JSON 数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51033916/

相关文章:

sql - 如何使用新的 PostgreSQL JSON 数据类型中的字段进行查询?

javascript - 使用单击事件超链接表行

javascript - 如何在 JavaScript 中以增量方式调用数组的 INDEX 值

javascript - 如何在不使用字符串的情况下将 Uint8Array 转换为 bool (位)数组?

Java char[] 中的 toString 方法

java - 制作三个轻度相关类的数组

php - 将数组中的所有数字值转换为整数类型,否则将非数字值保留为字符串

java - 从谷歌电子表格获取 JSON

javascript - 在 beforeunload 事件上查询数据库

javascript - $rootScope.$broadcast 未在 ui 路由器中拾取