我正在比较ruby+cucumber中的两个json内容或对象,如下所示
但当我比较时,如果内容的顺序有所不同,它不会忽略它我知道这个语句比较起来是两个字符串那么,我是否可以通过忽略顺序序列来比较两个json对象呢?

expect(@act_resp_excl_key).to eq(exp_data_excl_key)

在上面的细节中添加更多的信息。我有两个json文档,如下所示。
json1 = {
    "entries" =  > [{
                "doingBusinessAsName" =  > "KROGER FOODS",
                "legalName" =  > "Kroger-Corps"
            }
        ]
}

json2 = {
    "entries" =  > [{
                "legalName" =  > "Kroger-Corps"
                "doingBusinessAsName" =  > "KROGER FOODS",
            }
        ]
}

当我在ruby+cucumber中比较这两个json时,得到的结果是失败但逻辑上是一样的,我应该通过我使用上面的比较语句来验证两个json。
@转化生长因子,
我使用了你指定的语句,但我的比较仍然失败你能帮我什么问题吗?
expect(JSON.parse(@act_resp_excl_key)).to eq JSON.parse(exp_data_excl_key)

最佳答案

如果数据只是一个字符串中的json(请给出数据示例),您可以将其解析为一个ruby散列并进行比较。

require 'json'
JSON.parse(@act_resp_excl_key).class => Hash

然后断言两个散列相等:
expect(JSON.parse(@act_resp_excl_key)).to eq JSON.parse(exp_data_excl_key)

即使顺序不同,也可以。

10-07 12:21
查看更多