gpt4 book ai didi

ruby - 通过忽略 cucumber 中的顺序断言两个 json 内容

转载 作者:太空宇宙 更新时间:2023-11-03 18:11:59 25 4
gpt4 key购买 nike

我正在像这样比较 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。

@tgf,我使用了您指定的语句,但我的比较仍然失败。你能帮我看看可能是什么问题吗?

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)

即使顺序不同也能正常工作。

关于ruby - 通过忽略 cucumber 中的顺序断言两个 json 内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32383379/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com