जब मुझे 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
मैचर जो आदेश के सम्मान के बिना काम करता है।