我想弄清楚如何使用define_method(或任何其他方法)來生成數組名稱,因爲我的方法循環遍歷數組並將每個哈希元素轉換爲JSON。目前,我的數據是一系列剛剛轉儲到文件中的散列數組,不包含在任何更大的數組中。使用define_method在Ruby中生成動態數組名稱
data_arrays = [{"key1":"value1"}, {"key2":"value2"}]
[{"key3":"value3"}, ("key4":"value4")]
[{"key5":"value5"}, ("key6":"value6")]
我正在嘗試使用的代碼如下所示。基本上,我想每個哈希數組轉換成JSON和分配一個新的名稱,如json_array_1,jason_array_2等
data_arrays.each do |element|
for (i = 0; i < data_array.length; i+=1) do
define_method("json_array_#{i}") do
json_array_[i] = element.to_json
end
end
end
我知道這行:for (i = 0; i < data_array.length; i+=1) do
是不是真的紅寶石還是不錯的代碼在所有。但我需要一種方法來循環遍歷循環,同時還可以將變量「i」插入到json_array名稱中。任何人都可以給我任何指示讓這個代碼工作?我可能會推翻一切,讓事情變得比實際情況更難。
你還沒有提出足夠清楚的問題,所以我只能幫助一些小事情。 (1)要獲取數組索引,請使用'data_arrays.each_with_index do | element,i |' (2)調用方法動態使用'send(「json_array _#{i} =」,element.to_json)' –
您的定義'data_arrays'有幾個錯誤。看看我如何在我的答案中定義它。 –