JSON:id或不是关键项?

erj*_*ang 11 json

我一直负责创建一个简单的数据源,以便客户端可以通过JSON检索事物列表.每个东西都有一个ID,所以我的第一个冲动是创造类似的东西

{
    "13": {
        "name": "foo",
        "height": 17
    },
    "18": {
        "name": "bar",
        "height": 22
    }
...
}
Run Code Online (Sandbox Code Playgroud)

但我被告知这是一个滥用JS属性作为关联数组,所以这样的事情会更合适:

[
    {
        "id": 13,
        "name": "foo",
        "height": 17 
    },
    {
        "id": 18,
        "name": "bar",
        "height": 22 
    }
]
Run Code Online (Sandbox Code Playgroud)

第二个版本似乎......很难.这里的最佳做法是什么?

Gum*_*mbo 10

如果要通过ID访问对象,请使用ID为属性名称的前一种变体.然后,您可以使用对象的ID直接访问该对象.否则,如果您仍需要处理所有对象,请使用后一种变体.

  • 我真的不知道客户将如何使用这些数据. (2认同)

Swi*_*ler 6

后者是常见的实现方式,而前者几乎没有任何好处。最多可以为API的使用者节省大约五次击键,最糟糕的是,您创建的API远不及自我解释。即那个钥匙是物品的ID吗?是其他某种标识符吗?仅此请求唯一吗?等等。