关于 JSON 的哈希到底是啥?

Posted

技术标签:

【中文标题】关于 JSON 的哈希到底是啥?【英文标题】:What exactly is a hash in regards to JSON?关于 JSON 的哈希到底是什么? 【发布时间】:2011-01-22 18:51:22 【问题描述】:

我正在学习 JSON,但我发现您也可以将所谓的“哈希”放入 JSON 中?我在哪里可以找到哈希是什么?或者你能向我解释一下哈希是什么吗?另外,什么是哈希图?我有 C++ 和 C# 方面的经验,我正在学习 JS、Jquery 和 JSON。

【问题讨论】:

【参考方案1】:

哈希是一个稀疏数组,它使用任意字符串/对象(取决于实现,这因编程语言而异)而不是普通整数作为键。

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

希望这会有所帮助。

【讨论】:

关于最后一行的注释:您可以像对象一样设置数组的属性——它们对象,在这种情况下会像对象一样工作。跨度> 【参考方案2】:

哈希 = 字典。

哈希:

 "key1": "value1", "key2": "value2" 

【讨论】:

【参考方案3】:

JSON 支持字典类型元素。人们可能将这些称为哈希表,这是一种数据结构。 然而,将 JSON 字典称为哈希表在技术上是不正确的,因为没有与 JSON 数据本身相关联的特定数据结构实现。

哈希是一个随机的数字,它是从一段数据生成的,对于相同的输入总是相同的。例如,如果您从某些网站下载文件,它们将提供数据的哈希值,以便您可以验证您的下载没有损坏(这会改变哈希值)。 哈希的另一个应用是在哈希表(或哈希映射)中。这是一种非常快速的关联数据结构,其中哈希用于索引数组。 C++ 中的 std::unorderd_map 就是一个例子。 您可以将 JSON 中的哈希存储为字符串,例如“AB34F553”,并使用它来验证数据。

【讨论】:

以上是关于关于 JSON 的哈希到底是啥?的主要内容,如果未能解决你的问题,请参考以下文章

关于哈希的浅谈

WPF到底是啥?

下文中的哈希片段指的是啥?

c++中的左值和右值,右值引用到底是啥?关于引用这一节看得很迷糊。

mysql 最新的密码哈希算法/数据加密是啥?

drools的规则实例到底指的是啥?