web-dev-qa-db-ja.com

JSONに関してハッシュとは正確には何ですか?

私はJSONを学習していますが、JSONに「ハッシュ」と呼ばれるものを入れることもできます。ハッシュとは何ですか?それともハッシュとは何か説明してもらえますか?また、ハッシュマップとは何ですか? C++とC#の経験があり、JS、Jquery、JSONを学習しています。

25
Alex

ハッシュは、キーとして単純な整数ではなく、任意の文字列/オブジェクト(実装に応じて、これはプログラミング言語によって異なります)を使用するスパース配列です。

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" };

お役に立てれば。

28
Lior Cohen

ハッシュ=辞書。

ハッシュ:

{ "key1": "value1", "key2": "value2" }
14
Instance Hunter

JSONは、辞書タイプの要素をサポートしています。人々は、これらをデータテーブルの一種であるハッシュテーブルと呼ぶかもしれません。ただし、JSONデータ自体に関連付けられた特定のデータ構造の実装がないため、JSON辞書をハッシュテーブルとして参照することは技術的に正しくありません。

ハッシュとは、データの一部から生成されるランダムに見える数であり、同じ入力に対して常に同じです。たとえば、一部のWebサイトからファイルをダウンロードする場合、それらはデータのハッシュを提供するため、ダウンロードが破損していないことを確認できます(ハッシュが変更されます)。ハッシュの別のアプリケーションは、ハッシュテーブル(またはハッシュマップ)です。これは、ハッシュを使用して配列にインデックスを付ける非常に高速な連想データ構造です。 C++のstd :: unorderd_mapは、この例です。たとえば「AB34F553」のような文字列としてハッシュをJSONに保存し、これを使用してデータを検証できます。

2