2010-03-02 10 views
20

Uczę się JSON, ale dowiedziałem się, że możesz umieścić w JSON tak zwane "hashe"? Gdzie mogę się dowiedzieć, co to jest skrót? Czy mógłbyś mi wytłumaczyć, co to jest skrót? Co to jest skrót? Mam doświadczenie w C++ i C#, i uczę się JS, Jquery i JSON.Czym dokładnie jest hash w odniesieniu do JSON?

Odpowiedz

25

hash jest rzadki tablica, która wykorzystuje dowolne ciągi/obiektów (w zależności od implementacji, to waha się w różnych językach programowania) zamiast zwykłych liczb całkowitych jak klucze.

W JavaScript każdy obiekt jest technicznie hash (zwany również Słownik, Asocjatywna tablica itp.).

Przykłady:

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. 

Teraz, ponieważ JSON jest zasadniczo wykorzystujące konstrukcje JS i jakieś ścisłe wytyczne, aby określić dane przenośne, odpowiednik myObj powyżej byłoby:

{ "foo" : "bar" }; 

nadzieję, że to pomaga.

+0

wow, to wszystko? Nadrabiałem komplikacje. – Alex

+0

Uwaga na temat ostatniej linii: możesz ustawić właściwości na tablicach tak, jakby były obiektami - one * są * obiektami i będą zachowywać się jak obiekty w tym przypadku. – skeggse

+0

@CMC: dzięki. Zaktualizowano odpowiedź. –

11

Hash = słownik.

Hash:

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

I hash to losowo wyglądająca liczba, która jest generowana z kawałka danych i zawsze taka sama dla tego samego wejścia. Na przykład, jeśli pobierzesz pliki z niektórych witryn internetowych, dostaną mieszankę danych, aby można było zweryfikować, czy pobieranie nie jest uszkodzone (co zmieniłoby wartość mieszania). Kolejne zastosowanie skrótów znajduje się w tabeli mieszania (lub tablicy skrótów). Jest to bardzo szybka asocjacyjna struktura danych, w której skróty są używane do indeksowania w tablicy. std :: unorderd_map w C++ jest tego przykładem. Możesz zapisać hash w JSON jako ciąg, na przykład coś takiego jak "AB34F553" i użyć go do weryfikacji danych. JSON obsługuje również elementy typu słownikowego. Ludzie mogą nazywać to tabelami mieszającymi, ale byłoby to technicznie niepoprawne, ponieważ nie ma konkretnej implementacji struktury danych związanej z danymi JSON.