我正在尝试循环使用特定数据的哈希输出。如果我想输出所有用户名。这就是我一次只能做到这一点但不是我想要的。
puts username = json["users"][0]["username"]
puts username = json["users"][1]["username"]
也尝试了
json.each { |x| puts json["users"][x]["username"]}
这是哈希结构
{"success"=>true, "users"=>[{"id"=>"1523493", "username"=>"myname","age"=>"21"},{"id"=>"653172", "username"=>"anothername","age"=>"65"}]}
抱歉,我没有说清楚我的问题。我想迭代#34;用户名"然后我可以遍历每个用户名并输出特定数据,然后再转到下一个用户名
答案 0 :(得分:1)
您可以通过以下方式获得所有用户名:
json = { "users" => [{"id"=>"1523493", "username"=>"myname"},{"id"=>"653172", "username"=>"anothername"}] }
json["users"].map { |user| user["username"] }
# => ["username", "anothername"]
以上内容将为您提供一系列用户名,以便您根据需要进行操作。 :)
希望它有所帮助!
答案 1 :(得分:1)
你可以像这样循环你的json
json["users"].each do |u|
username = u["username"]
#Do some logic with username
#like user = User.find_by_username(username)
end
答案 2 :(得分:0)
h = {"success"=>true,
"users"=>[{"id"=>"1523493", "username"=>"myname","age"=>"21"},
{"id"=>"653172", "username"=>"anothername","age"=>"65"}]}
h["users"].map { |user| user["username"] }
#=> ["myname", "anothername"]