对于JSON API设计,平面数组或嵌套对象中的列表,哪种格式更好?

时间:2015-10-03 08:15:44

标签: json api data-structures api-design requirements

对于列表API,例如Users,我发现有两种常见格式。阵列:

// flat array
[
  {
    "login": "octocat",
    "id": 1
    ...
  },
  ...
]

GitHubHerokuTwitter使用此格式

VS对象:

{
  "results": [
    {
      "login": "octocat",
      "id": 1
      ...
    },
    ...
  ]
}

ParseSlack以及instagram使用此格式。

哪一个更好?如何比较这两种格式?

1 个答案:

答案 0 :(得分:0)

面向数组的数据具有以下优点:

  • 客户端JavaScript有更多的方法用于数组而不是对象
  • 根节点不需要模拟表格结构的树结构

和缺点:

  • 没有命名空间,因为索引是数字
  • JSON.parse在客户端JavaScript失败

密钥/价值导向数据具有以下优势:

  • JSON.parse适用于客户端JavaScript
  • 命名空间使重复值更容易消除歧义
  • 与数组方法相比,
  • JSON.stringify可以使simple transformations更容易

和缺点:

<强>参考