2010-03-02 8 views
20

Ich lerne JSON, aber ich habe herausgefunden, dass Sie auch sogenannte "Hashes" in JSON einfügen können? Wo kann ich herausfinden, was ein Hash ist? Oder kannst du mir erklären, was ein Hash ist? Was ist eine Hashmapp? Ich habe Erfahrung in C++ und C#, und ich lerne JS, Jquery und JSON.Was genau ist ein Hash in Bezug auf JSON?

Antwort

25

Ein Hash ist ein Sparse-Array, die beliebige Zeichenketten verwendet/Objekte (abhängig von der Implementierung variiert diese über Programmiersprachen) als Klar ganze Zahlen als Schlüssel.

In Javascript ist jedes Objekt technisch ein Hash (auch als Dictionary, Associative-Array, usw. bezeichnet).

Beispiele:

var myObj = {}; // Same as = new Object(); 
    myObj['foo'] = 'bar'; 

    var myArr = []; // Same as = new Array(); 
    myArr[0] = 'foo'; 
    myArr[1] = 'bar'; 
    myArr['blah'] = 'baz'; // This will work, but is not recommended. 

Da nun JSON, im Grunde Konstrukte JS verwendet, und einige strenge Richtlinien portable Daten zu definieren, um das Äquivalent myObj würde über sein:

{ "foo" : "bar" }; 

Hoffnung, das hilft.

+0

wow das war's? Ich habe Dinge kompliziert gemacht. – Alex

+0

Ein Hinweis zu Ihrer letzten Zeile: Sie können Eigenschaften für Arrays so einstellen, als wären sie Objekte - sie * sind * Objekte und fungieren in diesem Fall als Objekte. – skeggse

+0

@CMC: Danke. Die Antwort wurde aktualisiert. –

11

Hash = Wörterbuch.

A hash:

{ "key1": "value1", "key2": "value2" } 
-1

I-Hash ist eine zufällig aussehende Zahl, die aus einem Stück Daten generiert wird und immer die gleiche für die gleiche Eingabe ist. Wenn Sie beispielsweise Dateien von einigen Websites herunterladen, stellen sie einen Hash der Daten bereit, damit Sie überprüfen können, ob Ihr Download nicht beschädigt ist (was den Hashwert ändern würde). Eine andere Anwendung von Hashes ist in einer Hash-Tabelle (oder Hash-Map). Dies ist eine sehr schnelle assoziative Datenstruktur, bei der die Hashes zum Indizieren in ein Array verwendet werden. std :: unorderd_map in C++ ist ein Beispiel dafür. Sie könnten einen Hash in JSON als Zeichenfolge speichern, beispielsweise "AB34F553", und dies zum Verifizieren von Daten verwenden. JSON unterstützt auch Wörterverzeichniselemente. Personen können diese als Hashtabellen bezeichnen, aber dies wäre technisch falsch, da mit den JSON-Daten selbst keine bestimmte Datenstrukturimplementierung verknüpft ist.