/ / हैश की सरणी के साथ json प्रतिक्रिया की तुलना करें - रूबी-ऑन-रेल, रूबी, json, हैश, rspec

हैश की सरणी के साथ json प्रतिक्रिया की तुलना करें - रूबी-ऑन-रेल, रूबी, json, हैश, rspec

जब मुझे JSON प्रतिक्रिया में वस्तुओं का एक सरणी मिलती है, तो वे एक अलग क्रम में प्रतिनिधित्व कर सकते हैं।

कभी-कभी मुझे यह मिलता है

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

या यह

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

लेकिन मेरे लिए दोनों परिणाम सही हैं। उनके आदेश की परवाह किए बिना मेरे पास कौन सी वस्तुओं का परीक्षण करने का सबसे आसान तरीका है?

उत्तर:

जवाब के लिए 3 № 1

आप इसे हैश का उपयोग करके एक सेट की तरह संरचना में बदल सकते हैं।

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

जैसा ही होगा

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

जवाब के लिए 2 № 2

अपनी अन्य उपयोगी विशेषताओं के साथ, जेसन स्पेक मणि एक है be_json_eql मैचर जो आदेश के सम्मान के बिना काम करता है।