我有这样的OpenStruct
哈希:
#<OpenStruct object1={
"param1"=>"2",
"param2"=>"1"
},
object2={
"param1"=>"2",
"param2"=>"1"
},
object3={
"param1"=>"2",
"param2"=>"1"
}...
如何在此使用each
?
答案 0 :(得分:28)
OpenStruct有一个名为marshal_dump的方法,它返回基础哈希结构:
your_open_struct.marshal_dump.each{ |k,v| puts "#{k} => #{v}" }
如果您使用的是Ruby 2.0,您也可以使用to_h,如下所示:
your_open_struct.to_h.each{ |k,v| puts "#{k} => #{v}" }
与返回实际哈希结构的marshal_dump
不同,to_h
返回一个哈希,其中所有键都转换为符号以便于访问。