मैं एक JSON प्रतिक्रिया जो हैश की एक सरणी है:JSON पार्सिंग के लिए डेटा प्रकार कैसे निर्दिष्ट करें?
[{"project" => {"id" => 1, "name" => "Internal"},
{"project" => {"id" => 2, "name" => "External"}}]
मेरे कोड इस तरह दिखता है:
client = HTTP::Client.new(url, ssl: true)
response = client.get("/projects", ssl: true)
projects = JSON.parse(response.body) as Array
यह मैं किसी सरणी देता है, लेकिन ऐसा लगता है मैं तत्वों को टाइपकास्ट करने की जरूरत है वास्तव में उनका उपयोग करें अन्यथा मुझे undefined method '[]' for Nil (compile-time type is (Nil | String | Int64 | Float64 | Bool | Hash(String, JSON::Type) | Array(JSON::Type)))
मिलता है।
मैंने as Array(Hash)
की कोशिश की लेकिन यह मुझे can't use Hash(K, V) as generic type argument yet, use a more specific type
देता है।
मैं इस प्रकार को कैसे निर्दिष्ट करूं?
आपने मुझे 1 मिनट के लिए हराया! – asterite
प्रकट होता है #as वाक्यविन्यास बदल गया है? https://play.crystal-lang.org/#/r/1uhw या आप to_i और to_s FWIW का उपयोग कर सकते हैं। – rogerdpack
सच है, मैंने जवाब अपडेट किया। –