为什么 API 列出可以表示为键值对的 JSON 元素?

问题描述 投票:0回答:1

我使用大量 REST API 和 JSON 数据。我发现大多数时候,JSON 文件被格式化为键值对列表,但我的直觉告诉我应该有一个更高级别的键,这样我就不必迭代地搜索 ID 或其他东西。

例如,典型的响应可能如下所示:

{ 'blocks':
  [
    {
     'id': '123eaf456',
     'name': 'example',
      ...
     },
    {
     'id': '987cvr012',
     'name': 'example2',
      ...
     },
     ...
  ]
}

当我的直觉告诉我它应该是这样的结构,以便更容易找到特定元素时:

{ 'blocks':
  {
    '123eaf456': {
     'name': 'example',
      ...
     },
    '987cvr012': {,
     'name': 'example2',
      ...
     },
     ...
  }
}

我确信如此多的 JSON 数据似乎是这样构造的,但我似乎找不到有关该主题的任何内容。前一种结构实际上是否具有实际用途,或者它本质上只是一种风格选择?

json formatting
1个回答
0
投票

我们谈论的是 JSON,意思是 JavaScript Object 表示法。在符号中,每个对象都在大括号中定义:

{
   
}

每个对象都可以有属性(表示法中的属性),其定义如下:

{
   "attributeName": attributeValue,
}

让我们看看你的例子。我们有一个对象(例如,

an apartment
),
that apartment
blocks
组成,每个块都有属性:
id
name
。这是非常合乎逻辑的。

你建议构建具有属性的对象块:

123eaf456
987cvr012
,...但我想说:它不是一个具有逻辑结构的对象,它是一个难以理解的人工数据集(人脑喜欢对象) ).

让我们看看您的搜索用例(据我所知您从服务器获取了这个对象)您想通过 id 查找某些内容,但为什么您不询问具有特定 id 的服务器对象?你可能想通过名称找到一个块,在这种情况下,根据你的逻辑,它应该是一个带有键名称的结构(不是那么通用,不是吗)。

如果我们谈论服务器的性能,我猜服务器会在数据库中查找记录并使用 JSON 作为从数据库中找到的数据的表示,这对性能没有影响。

© www.soinside.com 2019 - 2024. All rights reserved.