通过散列数组循环遍历
问题描述:
name: {
"accounts"=>{
"data"=>[
{
"access_token"=>"CAAUCR7n0ZC50BAGmqTb3FEYz9FzZCZAZBFdVZC6AM3iQrGUsVqWvCfI5q5vh4seRH6LwIQTSkZAznzeBaPlZBjQ3zcwdfWxPBIr78FZBVa8pymUzVX0UESSS7QC0Dm7iIUCMyRH175HV6ZCa2ugBmbJNB7joZB7oiILPH5jtpcCLkg8e7ztxyjeSODSO4ZBAM9z1pkZD",
"name"=>"UNX",
"id"=>"387832931391777",
},
{
"access_token"=>"CAAUCR7n0ZC50BAEYnXR7bWGvhktsGXCaB43vB0mhSuKgZBQG1m5FyovssyVKt0XYv7K7essxPkVPU3nQZCqrQJeTtWhApV1cSYGsb4JbNmYlUiHmLHueEBjuomqRWVX6tvMZA0dA5zqMApbmPUtA7SBqruWUFzZAwZC9xZBXFMZCZAW7WNEL7epkb9dmiL2pX3AoZD",
"name"=>"Fuitter",
"id"=>"1412081982453898",
}
]}}
我想从data
散列数组中获取name
密钥。我用each
来循环,但这样我就不得不在循环内嵌套循环。有没有另一种方法来完成这项工作?通过散列数组循环遍历
这个name
键实际上是我的数据库中的数据类型为json的列。
<% session[:user].account.name.each do |test| %>
<% test.each do |me| %>
<%= me['data']['name']%> #unable to fetch name and gives me undefined method `[]' for nil:NilClass error
<br>
<% end %>
<% end %>
我试图通过嵌套循环来获取值,但我得到这个错误
unable to fetch name and gives me undefined method `[]' for nil:NilClass error
答
这样来做:
data_hash = { name: {
"accounts"=>{
"data"=>[
{
"access_token"=>"CAAUCR7n0ZC50BAGmqTb3FEYz9FzZCZAZBFdVZC6AM3iQrGUsVqWvCfI5q5vh4seRH6LwIQTSkZAznzeBaPlZBjQ3zcwdfWxPBIr78FZBVa8pymUzVX0UESSS7QC0Dm7iIUCMyRH175HV6ZCa2ugBmbJNB7joZB7oiILPH5jtpcCLkg8e7ztxyjeSODSO4ZBAM9z1pkZD",
"name"=>"UNX",
"id"=>"387832931391777",
},
{
"access_token"=>"CAAUCR7n0ZC50BAEYnXR7bWGvhktsGXCaB43vB0mhSuKgZBQG1m5FyovssyVKt0XYv7K7essxPkVPU3nQZCqrQJeTtWhApV1cSYGsb4JbNmYlUiHmLHueEBjuomqRWVX6tvMZA0dA5zqMApbmPUtA7SBqruWUFzZAwZC9xZBXFMZCZAW7WNEL7epkb9dmiL2pX3AoZD",
"name"=>"Fuitter",
"id"=>"1412081982453898",
}
]
}
}
}
data_hash[:name]['accounts']['data'].map { |d| puts d['name'] }
# => UNX
# => Fuitter
+0
拉杰Shakya,请考虑upvoting如果它真的帮助你解决你的问题的答案。谢谢。 –
我看见你的JSON例子,我觉得这代码应该是。 ' ' – trnthanhtu
你的意思是你想要''name''这个键的值吗? –