【发布时间】:2011-05-26 19:12:32
【问题描述】:
是否有任何方法可以接收 2 个 JSON 对象并比较这两个对象以查看是否有任何数据发生变化?
编辑
在审查了 cmets 之后,需要进行一些澄清。
-
一个 JSON 对象被定义为
“一组无序的名称/值对。 对象以 { 开头(左大括号) 并以 }(右大括号)结尾。每个 名称后跟:(冒号)和 名称/值对由 , 分隔 (逗号)。”——json.org
简单地说,我的目标是能够比较 2 个 JSON 对象字面量。
我不是 javascript 专家,所以如果在 javascript 中这些是对象字面量,那么我想我应该这样称呼它们。
我相信我正在寻找的是一种能够:
- 深度递归查找唯一的名称/值对
- 确定两个对象字面量的长度,并比较名称/值对以查看其中是否存在差异。
【问题讨论】:
-
没有什么比得上 JSON 对象了。 JSON 字符串或 JavaScript 对象,但不是其中任何一个的组合(好吧,也许 JavaScript 字符串存在;))。
-
@mjw06d 您是要比较对象的 JSON 字符串,还是要比较两个现有的 JavaScript
Object实例? -
@Felix Kling,你说得对,但对我来说,“JSON 对象”意味着在 Java 中称为 POJO ......到具有构造函数、私有或公共函数等的对象...在技术上不正确,但它有助于理解问题。
-
@box9 感谢您的意见。但是,术语“JSON 对象”是不正确的。如果我们可以让@mjw06d 澄清他的意图,那么这个问题要么是现有问题的直接重复,要么应该重新命名为“比较 2 个 JSON 对象字符串”。
-
@Felix Kling,*Phrogz:在 JSON 术语中,对象是一种由大括号分隔的实体。所以,是的,有一个 JSON 对象这样的东西。 (RFC ietf.org/rfc/rfc4627.txt?number=4627 的第 2.2 节)
标签: javascript json compare