2015-11-15 66 views
0

我想通過哈希循環輸出特定數據。如果我想輸出所有用戶名。這就是我一次可以做到的,但不是我想要的。循環紅寶石哈希和輸出特定元素

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"}]} 

抱歉,我沒有讓我的問題不夠清楚。我想重複的「用戶名」散,然後我可以通過每個用戶名和輸出特定的數據循環移動到下一個用戶名

+0

也users.map {|入門|把條目[「用戶名」]}給了我一個錯誤沒有隱含的字符串轉換爲整數 –

回答

1

你也可以遍歷您的JSON這樣

json["users"].each do |u| 
    username = u["username"] 
    #Do some logic with username 
    #like user = User.find_by_username(username) 
end 
1

之前,您可以通過做這樣的事情讓所有的用戶名一氣呵成:

json = { "users" => [{"id"=>"1523493", "username"=>"myname"},{"id"=>"653172", "username"=>"anothername"}] } 

json["users"].map { |user| user["username"] } 
# => ["username", "anothername"] 

上述內容將爲您提供一組用戶名,可以根據您的需要進行處理。 :)

希望它有幫助!

+0

對不起,我沒有讓我的問題清楚,我想。對於「用戶名」的每一次出現,我都想用它作爲循環,然後我可以提取我需要的元素。我也沒有發佈正確的散列,現在已經糾正它。 –

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"] 
+0

這確實很好,但是,我已經更新了我的任務,因爲我不夠清楚,並且發佈了錯誤的哈希結構,對不起。 –