我有一个名为activities的ruby数组,其中包含以下数据:
{
"activity"=>
{
"data"=>{},
"name"=>"password_update",
"created_at"=>"2015-04-13T06:22:44Z"}
}
{
"activity"=>
{
"data"=>{},
"name"=>"password_update",
"created_at"=>"2015-04-13T06:22:44Z"
}
}
如何仅提取名称键的值?
我想为每个活动提取“password_update”值...如果这有意义的话?
答案 0 :(得分:4)
正如你所说的“数组”,它根本无效......它看起来像一个哈希结构,具有相同的命名键! (哈希只能包含一个唯一的键和值,否则键的值会被覆盖......我们可以假设你有这样的事情:
activities = [
{
"activity"=>
{
"data"=>{},
"name"=>"password_update_1",
"created_at"=>"2015-04-13T06:22:44Z"}
}
},
{
"activity"=>
{
"data"=>{},
"name"=>"password_update_2",
"created_at"=>"2015-04-13T06:22:44Z"
}
}]
这看起来像一个哈希数组,现在你想从每个对象中获取“名称”,你可以简单地使用map函数(从块结果创建一个数组)和hash []访问器。
names = activites.map { |v| v['activity']['name'] }
# The result:
# names = [ 'password_update_1', 'password_update_2' ]