[英]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.