मेरे पास एक रेल ऐप है जो विश्व मौसम ऑनलाइन एपीआई से प्रतिक्रिया प्राप्त करता है। मैं बाकी क्लाइंट मणि का उपयोग कर रहा हूं और प्रतिक्रिया जेएसओएन प्रारूप में है।रूबी गहरा घोंसला जेएसओएन एपीआई डेटा प्राप्त कर रहा है
मैं प्रतिक्रिया के प्रयोग से पार्स:
parsed_response = JSON.parse(response)
कहाँ parsed_response
स्पष्ट रूप से एक हैश है।
मुझे जिस डेटा की आवश्यकता है वह एक हैश के अंदर एक हैश के अंदर एक और हैश के अंदर एक और हैश के अंदर एक और हैश के अंदर तार है।
आंतरिक-सबसे घोंसले वाले हैंश ["hourly"]
के अंदर हैं, 8 हैश की एक सरणी, प्रत्येक 20 कुंजी के साथ, विभिन्न मौसम मानकों के स्ट्रिंग मान रखते हैं। सरणी में इनमें से प्रत्येक हैश दिन का एक अलग समय है (पूर्वानुमान तीन घंटे, 3 * 8 = 24 घंटे है)।
तो, उदाहरण के लिए, अगर मैं 9 पर मीटर में प्रफुल्लित ऊंचाई चाहते हैं, मैं इसे निम्नलिखित कॉल के साथ लगता है:
@swell_height = parsed_data["data"]["weather"][0]["hourly"][7]["swellHeight_m"]
कहाँ सरणी में 7 वीं तत्व को "time" => "2100"
जबकि अनुरूप मैं निश्चित रूप से इस के साथ काम कर सकता हूं, मैं इस बारे में उत्सुक हूं कि मेरे डेटा तक पहुंचने की एक और सीधी विधि है, जैसे कि यह डेटाबेस तालिका थी, मैं सक्रिय रिकॉर्ड का उपयोग कर सकता था, जैसे:
@swell_height = parsed_data.swellHeight_m.where(:time => "2100")
मैं इस से "चयनित" कैसे ढूंढ सकता हूं - "बच्चों" => [{"आईडी" => "10", "पाठ" => "नए आगमन", "राज्य" => {"खोला गया" = > सत्य, "चयनित" => झूठा}} – kpp