我正在学习JSON,但我发现你也可以把所谓的“哈希”放入JSON中?我在哪里可以找到hash是什么?或者你能给我解释一下什么是哈希吗?什么是hashmap?我有C++和C#的经验,我正在学习JS,Jquery和JSON。
mutmk8jj1#
哈希是一个稀疏数组,它使用任意字符串/对象(取决于实现,这在编程语言中有所不同)而不是普通整数作为键。在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" };
希望这能帮上忙。
9bfwbjaz2#
Hash =字典。哈希:
{ "key1": "value1", "key2": "value2" }
8mmmxcuj3#
JSON支持字典类型元素。人们可能会将这些称为哈希表,这是一种数据结构。然而,将JSON字典称为哈希表在技术上是不正确的,因为没有与JSON数据本身相关联的特定数据结构实现。散列是从一段数据生成的随机数,并且对于相同的输入总是相同的。例如,如果您从某些网站下载文件,它们将提供数据的哈希,以便您可以验证您的下载没有损坏(这将更改哈希)。散列的另一个应用是在散列表(或散列Map)中。这是一个非常快速的关联数据结构,其中散列用于索引数组。C++中的std::unorderd_map就是一个例子。您可以将JSON中的散列存储为字符串,例如“AB34F553”,并使用它来验证数据。
gopyfrb34#
在json.org上,JSON“对象”是“名称/值对的集合”。在各种语言中,这被实现为对象、记录、结构、字典、哈希表、键控列表或关联数组。对JSON对象使用模棱两可的术语“hash”会造成混淆。“Hash”在野外实际上用作以下的简写:哈希Map、字典、键值结构等。但它也是简写:由哈希函数计算的哈希值。
4条答案
按热度按时间mutmk8jj1#
哈希是一个稀疏数组,它使用任意字符串/对象(取决于实现,这在编程语言中有所不同)而不是普通整数作为键。
在Javascript中,任何对象在技术上都是一个散列(也称为字典,关联数组等)。
示例:
现在,由于JSON基本上使用JS构造和一些严格的准则来定义可移植数据,因此与上面的myObj等效的是:
希望这能帮上忙。
9bfwbjaz2#
Hash =字典。
哈希:
8mmmxcuj3#
JSON支持字典类型元素。人们可能会将这些称为哈希表,这是一种数据结构。然而,将JSON字典称为哈希表在技术上是不正确的,因为没有与JSON数据本身相关联的特定数据结构实现。
散列是从一段数据生成的随机数,并且对于相同的输入总是相同的。例如,如果您从某些网站下载文件,它们将提供数据的哈希,以便您可以验证您的下载没有损坏(这将更改哈希)。散列的另一个应用是在散列表(或散列Map)中。这是一个非常快速的关联数据结构,其中散列用于索引数组。C++中的std::unorderd_map就是一个例子。您可以将JSON中的散列存储为字符串,例如“AB34F553”,并使用它来验证数据。
gopyfrb34#
在json.org上,JSON“对象”是“名称/值对的集合”。在各种语言中,这被实现为对象、记录、结构、字典、哈希表、键控列表或关联数组。
对JSON对象使用模棱两可的术语“hash”会造成混淆。“Hash”在野外实际上用作以下的简写:哈希Map、字典、键值结构等。但它也是简写:由哈希函数计算的哈希值。