2017-04-23 72 views
0

我想將對象保存到數組中。我有JSON對象,我想保存數組中的每個對象來單獨訪問每個元素。 任何人都可以幫助我嗎?如何將JSON對象保存到數組中

toArray = JSON.parse(res.body) 

categ = Array.new 
i = 0 

toArray.each do |object| 
newMyObject = MyObject.new(object) 
categ = Array.new(i, newMyObject) 
i = i+1 
end 
+0

感謝您的評論。我怎樣才能做到這一點?之後我必須訪問json中的每個元素。 –

+0

作爲一個註釋,Ruby強烈鼓勵使用只包含小寫字母的變量和方法名稱,所以'to_array'在這裏是可以預料的。大寫字母保留爲「ClassName」或「CONSTANT_NAME」的情況。 – tadman

回答

2

試試這個

array_from_json = JSON.parse(res.body) 
objects_array = array_from_json.map { |item| MyObject.new(item) } 

在你的代碼的問題是,您要創建一個新的數組每次迭代。

+0

謝謝。你能解釋一下我的代碼究竟做了什麼嗎? –

+0

也許你不知道地圖的方法。這允許您轉換數組的每個元素並返回一個新數組。在這種情況下,我們將json中的每個元素轉換爲MyObject對象,並將結果存儲在objects_array數組對象中。 – Ursus

+0

我得到的錯誤:「未初始化的常數爲MyObject(NameError) 您的意思是Object從測試 \t:51:在'各 ' \t從測試:51:在'地圖' \t從測試:51:在'

' 「你能幫我嗎? –

相關問題