我使用大量 REST API 和 JSON 数据。我发现大多数时候,JSON 文件被格式化为键值对列表,但我的直觉告诉我应该有一个更高级别的键,这样我就不必迭代地搜索 ID 或其他东西。
例如,典型的响应可能如下所示:
{ 'blocks':
[
{
'id': '123eaf456',
'name': 'example',
...
},
{
'id': '987cvr012',
'name': 'example2',
...
},
...
]
}
当我的直觉告诉我它应该是这样的结构,以便更容易找到特定元素时:
{ 'blocks':
{
'123eaf456': {
'name': 'example',
...
},
'987cvr012': {,
'name': 'example2',
...
},
...
}
}
我确信如此多的 JSON 数据似乎是这样构造的,但我似乎找不到有关该主题的任何内容。前一种结构实际上是否具有实际用途,或者它本质上只是一种风格选择?
我们谈论的是 JSON,意思是 JavaScript Object 表示法。在符号中,每个对象都在大括号中定义:
{
}
每个对象都可以有属性(表示法中的属性),其定义如下:
{
"attributeName": attributeValue,
}
让我们看看你的例子。我们有一个对象(例如,
an apartment
),that apartment
由blocks
组成,每个块都有属性:id
和name
。这是非常合乎逻辑的。
你建议构建具有属性的对象块:
123eaf456
,987cvr012
,...但我想说:它不是一个具有逻辑结构的对象,它是一个难以理解的人工数据集(人脑喜欢对象) ).
让我们看看您的搜索用例(据我所知您从服务器获取了这个对象)您想通过 id 查找某些内容,但为什么您不询问具有特定 id 的服务器对象?你可能想通过名称找到一个块,在这种情况下,根据你的逻辑,它应该是一个带有键名称的结构(不是那么通用,不是吗)。
如果我们谈论服务器的性能,我猜服务器会在数据库中查找记录并使用 JSON 作为从数据库中找到的数据的表示,这对性能没有影响。