Ich habe diese beiden Datenstrukturen, die ich mir die Wahl zwischen immer wieder finden, wenn Daten aus einer Datenbank ziehen:Datenstruktur beste Praxis in Bezug auf eindeutige ID des
{
"1": {"location": "seattle", "color": "red"},
"2": {"location": "irvine", "color": "blue"},
"3": {"location": "san diego", "color": "green"}
}
{
"listings":[
{"id": "1", "location": "seattle", "color": "red"},
{"id": "2", "location": "irvine", "color": "blue"},
{"id": "3", "location": "san diego", "color": "green"}
]
}
Jeder scheint Vor-und Nachteile zu haben ...
Die Objektstruktur ist großartig für den schnellen Zugriff auf einen Wert mit einer ID durch obj['3'].color
Das Problem ist, wenn Sie alle Objekte auflisten, die Sie Schleife mit einer for(key in obj)
-Schleife, die sehr langsam zu sein scheint.
Die Array-Struktur läuft viel schneller unter Verwendung von for(var i=0; i<array.length; i++)
, aber den Zugriff auf einen Wert mit einer ID ist nicht einfach aus der Box. Sie müssen eine Funktion erstellen, die das gesamte Array durchläuft und die ID anhand eines angegebenen Parameters überprüft.
Hier ist eine jsperf der beiden Lösungen.
Was denken Sie ist besser und warum?
Sie haben ein JavaScript-Objekt und Array, aber kein JSON hier. Wenn Sie die Daten als JSON an den Client übertragen, ist das in Ordnung, aber sobald die Daten analysiert sind, haben Sie es nicht mehr mit JSON zu tun. –
Es ist das Gleiche. Angenommen, der Server gibt entweder ein als JSON analysiertes Objekt oder ein als JSON analysiertes Array zurück. – alnafie
Es ist nicht. JSON ist ein Datenaustauschformat, während ein JavaScript-Array oder -Objekt ein Datentyp in JavaScript ist. Lassen Sie sich von der ähnlichen Syntax nicht täuschen. Wenn Ihr Problem darin besteht, herauszufinden, welche Datenstruktur für Ihren Zweck am besten geeignet ist, hat es überhaupt nichts mit JSON zu tun. –