2

当我在 JSON 响应中获得一组对象时,它们可能以不同的顺序表示。

有时我得到这个

JSON.parse(response.body) # => [{"a" => "b"}, {"c" => "d"}]

或这个

JSON.parse(response.body) # => [{"c" => "d"}, {"a" => "b"}]

但对我来说,这两个结果都是正确的。无论它们的顺序如何,测试我响应的对象的最简单方法是什么?

4

2 回答 2

3

您可以使用哈希将其转换为类似集合的结构。

first_response.inject({}){|s, h| s[h] = true; s}

将与

second_response.inject({}){|s, h| s[h] = true; s}
于 2012-11-05T15:34:23.903 回答
2

除了其他有用的特性,json 规范gem 有一个be_json_eql匹配器,它可以在不考虑顺序的情况下工作。

于 2012-11-06T02:48:39.657 回答