3

我在加载网页时加载 JSON,它通过客户端中的用户操作进行更改。当用户离开时想要查看 JSON 是否更改。除了在 JSON 中逐个比较值之外,还有什么方法可以在 JavaScript 中创建一个哈希字符串并作为一个整体进行比较?

4

3 回答 3

10

尝试使用数据的字符串化版本

前任。

JSON.stringify(orig) == JSON.stringify(current)

注意:在这种情况下,您需要保留原始 json 的深层副本或它的字符串化版本,也存在误报的可能性,因为键的顺序可能会改变。

对于不支持原生 JSON 的浏览器,您可能必须使用像json2这样的库。

于 2013-08-22T07:05:34.000 回答
6

而且,还有另一种方式:

将两个 JSON 分配给两个对象 a 和 b。现在,您可以deep-equal使用underscorejslodash函数进行比较。

_.isEqual(a, b)
于 2013-08-22T07:11:32.023 回答
4

您可以使用JSON.stringify()来自json2.js.

if (JSON.stringify(object1) == JSON.stringify(object2)) {
    //magic
}

有些浏览器甚至不需要 json2.js,因为它们原生JSON.stringify支持

于 2013-08-22T07:05:34.857 回答