Ruby:如何将数据数组转换为hash和json格式?

Kit*_* Ho 6 ruby

我是Ruby数组和哈希操作的新手.

我该怎么做这个简单的转换?

array = [#<struct id=1, car='red'>, #<struct id=2, car='yellow'>, #<struct id=3, car='green'>]
Run Code Online (Sandbox Code Playgroud)

json中所需的输出:

[{id : 1, car : 'red'} , {id:2, car :'yellow'} ,{id:3 , car: "green"}]
Run Code Online (Sandbox Code Playgroud)

有人有任何提示吗?

Nic*_*gan 15

array.map { |o| Hash[o.each_pair.to_a] }.to_json
Run Code Online (Sandbox Code Playgroud)


Cha*_*nap 7

struct对象数组转换为数组hash,然后调用to_json.您需要json(ruby 1.9)才能使用该to_json方法.

array.collect { |item| {:id => item.id, :car => item.car} }.to_json
Run Code Online (Sandbox Code Playgroud)