javascript - 基本的类似 JSON 的对象结构?

标签 javascript python json schema

如何在类 JSON 对象中正确存储数据?据我所知,有两种方法可以将数据存储在 json 对象中。两者都有不同的方式来访问数据(Python 中的示例):

选项 1:

obj1 = [
    {"id": 1, "payload": "a"},
    {"id": 2, "payload": "b"},
    {"id": 3, "payload": "c"},
]

在选项1中访问某个id的payload:

for element in obj1:
    if element["id"] == 2:
        print(element["payload"])

这意味着,必须(可能)扫描整个元素列表以找到正确的 id 并返回其值。

另一方面,还有选项 2:

obj2 = {
    1: "a",
    2: "b",
    3: "c",
}

访问第二个“id”的有效载荷只是:

print(obj2[2])

我现在的问题是,为什么选项 1 更常见,尽管搜索起来似乎更复杂?我什么时候使用选项 1,什么时候使用选项 2?

最佳答案

我们应该澄清一些术语。

当您将值列表放入[] 时,您正在创建一个数组;它以数组索引为键,而不是以数据的任何元素为键。

当您将键和值列表放入 {} 时,您正在创建一个对象;正如您所注意到的,如果您知道相应的键,则可以找到一个值。

这两种结构之间有许多差异。在您站点的特定用例中 - 希望根据其字段值之一查找数据实例 - 使用该字段作为键的对象是有意义的。

但是对象键是无序的。数组更自然地让您遍历它们的所有元素。

这取决于您要如何处理这些值;这就是为什么不只有一种数据结构的原因。

关于javascript - 基本的类似 JSON 的对象结构?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42094648/

相关文章:

python - 将 unix 时间转换为 mysql 日期时间并包括毫秒

javascript - 将返回的 JSON 对象属性转换为(较低的第一个)camelCase

python - 如果我的 JSON 数据被读取为列表而不是 Python 字典,可以吗?

javascript - 在html页面中制作线性电位器

javascript - 在多行文本中使用正则表达式阻止逗号

javascript - 如何处理有 31 天的月份和只有 30 天的月份?

javascript - wbraganca yii2 动态表单日期选择器问题?

python - py2neo 引发了 finished(self) 错误

python - 为什么 df.cumsum() 给出 ValueError : Wrong number of items passed, 放置意味着 1

ios - Objective C TableView 清晰 Json 解析