rails将object1转换为object2

时间:2013-03-06 11:05:32

标签: ruby-on-rails ruby map

我有2个obejct

name.to_json(object1):

[{"name":{"first":"1","second":"2"}},{"name":{"first":"11","second":"22"}}]

和object.to_json(object2):

[{"first":"1","second":"2"},{"first":"11","second":"22"}]

如何将object1转换为object2

rails 2

ruby 1.8.7

也许我可以使用地图,但我不知道该怎么做。

2 个答案:

答案 0 :(得分:0)

“转换”意味着转换结构?我假设你的object1是一个哈希数组(它是“看起来像”,但你只给出了JSON表示,所以我不能确定。)

怎么样:

object1.map {|o| o["name"]}

英文:迭代“object1”中的所有对象,并返回“name”键后面的值。

完整示例(从irb会话中复制/粘贴):

irb(main):003:0> object1 = [{"name"=>{"first"=>"1", "second"=>"2"}}, {"name"=>{"first"=>"11", "second"=> "22"}}]
irb(main):004:0> object1.map {|o|o["name"]}
=> [{"first"=>"1", "second"=>"2"}, {"first"=>"11", "second"=>"22"}]

这是你在找什么?

答案 1 :(得分:0)

不确定您是否需要此

[1] pry(main)> require "json"
=> true
[2] pry(main)> JSON.parse('[{"name":{"first":"1","second":"2"}},{"name":{"first":"11","second":"22"}}]')
=> [{"name"=>{"first"=>"1", "second"=>"2"}},
 {"name"=>{"first"=>"11", "second"=>"22"}}]
[3] pry(main)> x.collect {|w| w.values}
=> [[{"first"=>"1", "second"=>"2"}], [{"first"=>"11", "second"=>"22"}]]