ruby-on-rails 在ruby中比较JSON结构

dgsult0t  于 2023-01-03  发布在  Ruby
关注(0)|答案(3)|浏览(182)

我有两个json对象,如下所示:

obj1= [ { "id": 4, "userId": "abc", "firstName": "abc", "lastName": "abc", "email": "abc@abc.it", "prefers" : [{"breakfast" : "bread" , "lunch" : "non-veg"}] } ]

obj2= [ { "id": 5, "userId": "def", "firstName": "def", "lastName": "def", "email": "def@def.it", "prefers" : [{"breakfast" : "egg" , "lunch" : "veg"}] } ]

将这些设置给对象,我必须验证object2是否具有与object1中相同的键
diff(obj1,obj2)应该会给予我丢失的密钥

e3bfsja2

e3bfsja21#

使用keys返回散列的键数组,然后减去它们

obj1[0].keys - obj2[0].keys
# => array of missing keys
pgky5nke

pgky5nke2#

这个Ruby JSON comparator将向你展示如何做,它被设计来比较两个对象,如果它们相同则返回true,但是你可以根据需要设计一个更复杂的返回值。

sigwle7e

sigwle7e3#

如果您只想验证两个对象的键是否匹配,则可以执行以下操作:

object1.keys && object2.keys == object1.keys

这将为您提供匹配与否的验证。

相关问题