如何检查Javascript中是否更改了JSON?

Nis*_*ish 2 javascript performance

我在加载网页时加载JSON,并通过客户端中的用户操作进行更改.当用户离开时想要查看JSON是否已更改.而不是在JSON中逐个比较值是什么方式来制作一个哈希字符串并在JavaScript中作为一个整体进行比较?

Aru*_*hny 7

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

防爆.

JSON.stringify(orig) == JSON.stringify(current)
Run Code Online (Sandbox Code Playgroud)

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

对于不支持本机JSON的浏览器,您可能必须使用类似json2的库.

  • *"键的顺序可能会改变"*我认为这只有在原始JSON生成在其他地方时才会发生,例如PHP脚本.在相同的数据上调用`JSON.stringify`应该每次产生相同的结果.相关:http://stackoverflow.com/questions/8931967/is-there-a-deterministic-equivalent-of-json-stringify.我希望MDN指的是引擎之间的差异,相同的引擎应该总是产生相同的结果. (2认同)

kum*_*rsh 6

而且,还有另一种方式:

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

_.isEqual(a, b)
Run Code Online (Sandbox Code Playgroud)