2017-02-10 30 views
0

我正在爲Ruby中的Puppet編寫一個事實。我有一個陣列將數組轉換爲Ruby中的json(Puppet,facter)

array = [[["User", "Username"], ["Date", "16.12.2014"]], [["User1", "Username1"], ["Date1", "17.12.2014"]]] 

我想將它轉換爲json。我試圖將其轉換第一個哈希,但在Linux的

array.each do |userarr| 
      winusers = Hash[userarr.map! { |pair| [pair[0], pair[1]] } ] 
end 

做這樣我只得到這一個[["User1", "Username1"], ["Date1", "17.12.2014"]]對轉換。這樣做:

array.each do |userarr| 
     winusers = Hash[userarr.map! { |pair| [pair[0], pair[1]] } ] 
     winusersa << winusers 

end 

我得到一個散列數組。將它隱藏在Linux上的json winusersa.to_json我在Puppet上得到了一個json格式文本數組(事實上,我只獲得了第一對轉換對)。爲什麼在Puppet中它不起作用?如何轉換該數組以獲取所有對的格式?

回答

2

試試這個

array.flatten(1).each_slice(2).map(&:to_h) 
=> [{"User"=>"Username", "Date"=>"16.12.2014"}, {"User1"=>"Username1", "Date1"=>"17.12.2014"}] 

然後,作爲一個哈希,即可輕鬆調用to_json