1

Foursquare API を使用しており、このハッシュから「id」値を抽出したい

[{"id"=>"4fe89779e4b09fd3748d3c5a", "name"=>"Hitcrowd", "contact"=>{"phone"=>"8662012805", "formattedPhone"=>"(866) 201-2805", "twitter"=>"hitcrowd"}, "location"=>{"address"=>"1275 Glenlivet Drive", "crossStreet"=>"Route 100", "lat"=>40.59089895083072, "lng"=>-75.6291255071468, "postalCode"=>"18106", "city"=>"Allentown", "state"=>"Pa", "country"=>"United States", "cc"=>"US"}, "categories"=>[{"id"=>"4bf58dd8d48988d125941735", "name"=>"Tech Startup", "pluralName"=>"Tech Startups", "shortName"=>"Tech Startup", "icon"=>"https://foursquare.com/img/categories/shops/technology.png", "parents"=>["Professional & Other Places", "Offices"], "primary"=>true}], "verified"=>true, "stats"=>{"checkinsCount"=>86, "usersCount"=>4, "tipCount"=>0}, "url"=>"http://www.hitcrowd.com", "likes"=>{"count"=>0, "groups"=>[]}, "beenHere"=>{"count"=>0}, "storeId"=>""}] 

を使用して抽出しようとすると['id']、このエラーが発生しますcan't convert Symbol into Integer。Rubyを使用して値を抽出するにはどうすればよいですか? また、毎回「id」値を抽出する複数のハッシュに対してこれを行うにはどうすればよいですか?

私の未熟さを許してください。ありがとう!

4

3 に答える 3

2

複数のハッシュの場合、IDを使用して何かを実行したい場合(ある種のプロシージャを実行したい場合)、

resultsArray.each do |person|
  id = person["id"] #then do something with the id
end

IDを含む配列を取得したい場合は、

resultsArray.map{|person| person["id"]}  
# ["4fe89779e4b09fd3748d3c5a", "5df890079e4b09fd3748d3c5a"]

配列から1つのアイテムを取得するには、AlexWayne回答を参照してください。

于 2012-08-04T00:07:12.957 に答える
0

ID の配列を取得するには、次を試してください。resultsArray.map { |result| result["id"] }

于 2012-08-04T05:01:22.337 に答える