2010-03-02 8 views
20

Я изучаю JSON, но я узнал, что вы можете помещать так называемые «хэши» в JSON? Где я могу узнать, что такое хэш? Или вы могли бы объяснить мне, что такое хэш? Кроме того, что такое hashmap? У меня есть опыт работы на C++ и C#, и я изучаю JS, JQuery и JSON.Что такое хэш в отношении JSON?

ответ

25

Хеш разреженный массив, который использует произвольные строки/объекты (в зависимости от реализации, это варьируется в зависимости от языков программирования), а не простых чисел в качестве ключей.

В Javascript любой объект является технически хешем (также называемым словарем, ассоциативным массивом и т. Д.).

Примеры:

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. 

Теперь, так как JSON в основном с помощью JS конструкции и некоторых строгих правил для определения переносимых данных, эквивалент myObj выше будет:

{ "foo" : "bar" }; 

Надеется, что это помогает.

+0

Вау это все? Я был слишком расстроен. – Alex

+0

Заметка о вашей последней строке: вы можете устанавливать свойства на массивах, как если бы они были объектами - они * являются * объектами и будут действовать как объекты в этом случае. – skeggse

+0

@CMC: спасибо. Обновлен ответ. –

11

Hash = словарь.

Хеш:

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

I hash - случайное число, которое генерируется из части данных и всегда одинаково для одного и того же ввода. Например, если вы загружаете файлы с некоторых веб-сайтов, они будут предоставлять хэш данных, чтобы вы могли проверить, что ваша загрузка не повреждена (что изменило бы хэш). Другое приложение хешей находится в хеш-таблице (или хэш-карте). Это очень быстрая ассоциативная структура данных, в которой хеши используются для индексации в массив. std :: unorderd_map в C++ - пример этого. Вы можете сохранить хэш в JSON как строку, например, что-то вроде «AB34F553», и использовать это для проверки данных. JSON также поддерживает элементы типа словаря. Люди могут ссылаться на них как на хэш-таблицы, но это было бы технически неверно, поскольку нет конкретной реализации структуры данных, связанной с данными JSON.

Смежные вопросы