簡體   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