开发者

What exactly is a hash in regards to JSON?

开发者 https://www.devze.com 2022-12-21 13:25 出处:网络
I am learning JSON, but I found out that you can put what are called \"hashes\" into JSON as well? Where can I find out what a h开发者_开发问答ash is? Or could you explain to me what a hash is? Also,

I am learning JSON, but I found out that you can put what are called "hashes" into JSON as well? Where can I find out what a h开发者_开发问答ash is? Or could you explain to me what a hash is? Also, what's a hashmap? I have experience in C++ and C#, and I am learning JS, Jquery, and JSON.


A Hash is a sparse array that uses arbitrary strings/objects (depending on the implementation, this varies across programming languages) rather than plain integers as keys.

In Javascript, any Object is technically a hash (also referred to as a Dictionary, Associative-Array, etc).

Examples:

  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.

Now, since JSON is basically using JS constructs and some strict guidelines to define portable data, the equivalent to myObj above would be:

{ "foo" : "bar" };

Hope this helps.


Hash = dictionary.

A hash:

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


JSON supports dictionary type elements. People may refer to these as hash tables, which are a type of data structure. Referring to JSON dictionaries as hash tables would be technically incorrect, however, as there is no particular data structure implementation associated with the JSON data itself.

A hash is a random looking number which is generated from a piece of data and always the same for the same input. For example if you download files from some websites they will provide a hash of the data so you can verify your download is not corrupted (which would change the hash). Another application of hashes is in a hash table (or hash map). This is a very fast associative data structure where the hashes are used to index into an array. std::unorderd_map in C++ is an example of this. You could store a hash in JSON as a string for example something like "AB34F553" and use this to verify data.


On json.org, a JSON "object" is "a collection of name/value pairs. In various languages, this is realized as an object, record, struct, dictionary, hash table, keyed list, or associative array."

Using the ambiguous term "hash" for a JSON object is confusing. "Hash" is indeed used in the wild as short-hand for: hash map, dictionary, key-value structure, etc. But it is also short-hand for: the hash value that is computed by a hash function.

0

精彩评论

暂无评论...
验证码 换一张
取 消