2017-08-02 108 views
2

有什麼方法可以比較使用ChaiJS的2個json對象嗎?我想深入比較它們直到葉節點。但是,如果代碼忽略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 
+0

這將是包含非基本對象? 如果你可以JSON.stringify他們兩個只是做這兩個對象和比較字符串。 –

+0

不是。我不能那樣做。這意味着我要比較兩個對象中屬性的順序,這是我不想要的。 – sribasu

+0

你可以從這裏比較JSON:http://www.jsondiff.com/ 希望這會有所幫助 –

回答

5

首先是no such thing as "JSON object"。你有對象文字。然後「忽略兄弟姐妹的順序」對象鍵沒有順序。

比較兩個對象,你可以使用deep flag

expect(obj1).to.be.deep.equal(obj2) 
+0

謝謝。讓我試試看。 – sribasu