繁体   English   中英

基本类似JSON的对象结构?

[英]Fundamental JSON-like object structure?

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

选项1:

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

在选项1中访问某个id的有效负载:

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?

我们应该澄清一些术语。

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

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

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

但是对象键是无序的。 阵列更自然地让你自己迭代所有元素。

这取决于你要对价值观做些什么; 这就是为什么不只有一个数据结构。

除了以某种方式演变的技术工件之外,选项一有意义,以防元素的顺序很重要。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM