如何比较完整的JSON对象

sri*_*asu 2 unit-testing node.js chai

有没有办法比较使用ChaiJS的2个json对象?我想比较它们直到叶节点.但是,如果代码忽略JSON对象中兄弟节点的顺序会更好 - 只会验证值的结构和值以及数据类型.任何帮助表示赞赏.

我刚看到以下代码,但不确定equalsRec什么

expect({ a: 3, b: {c: '2'} }).to.equalRec({ a: 3, b: {c: 2} }) //expecting false
expect({ a: 3, b: {c: '2'} }).to.equalRec({ b: {c: '2'}, a: 3 }) //expecting true
Run Code Online (Sandbox Code Playgroud)

Yur*_*nko 5

首先,没有"JSON对象"这样的东西.你有对象文字.然后"忽略兄弟姐妹的顺序"对象键没有顺序.

要比较两个对象,您可以使用deepflag

expect(obj1).to.be.deep.equal(obj2)
Run Code Online (Sandbox Code Playgroud)