JSONリクエストからハッシュの内部レベルを表示しようとしています。JSONリクエストからハッシュを表示する方法を示します。
これは、JSONリクエストからのリターンです:
{
"results": [
{
"utc_offset": -25200000,
"venue": {
"zip": "94305",
"country": "us",
"localized_country_name": "USA",
"city": "Stanford",
"address_1": "750 Escondido Road",
"name": "Ray's - Graduate Community Center",
"lon": -122.158386,
"id": 5612552,
"state": "CA",
"lat": 37.423393,
"repinned": false
},
"status": "upcoming"
},
{
"utc_offset": -25200000,
"venue": {
"zip": "94306",
"country": "us",
"localized_country_name": "USA",
"city": "Palo Alto",
"address_1": "25 Churchill Ave",
"name": "Palo Alto High School",
"lon": -122.154121,
"id": 1566333,
"state": "CA",
"lat": 37.433186,
"repinned": false
},
"status": "upcoming"
},
{
"utc_offset": -25200000,
"venue": {
"zip": "94306",
"country": "us",
"localized_country_name": "USA",
"city": "Palo Alto",
"address_1": "25 Churchill Ave",
"name": "Palo Alto High School",
"lon": -122.154121,
"id": 1566333,
"state": "CA",
"lat": 37.433186,
"repinned": false
},
"status": "upcoming"
}
]
}
}
私が言及しました
:How to use JSON data returned by API call in Rails 4、How to get a second level field from json file using ruby、Why do I get "no implicit conversion of String into Integer (TypeError)"?、How to access JSON in Rails?
私はこのポイントを得る助け、私は内側のレベルを表示することができますが"Ray's - Graduate Community Center"
を返す@result = @api_response["results"][0]["venue"]["name"]
を使用して配列インデックスを指定すると、ハッシュのこれは私が表示しようとしているものですが、インデックス[0]の名前だけでなく、リストのすべての会場の名前を表示したかったのです。しかし、私はどのようにインデックスを反復するか分からない。
@result = @api_response["results"]
を使用してハッシュ化された結果を表示し、使用を反復処理することができます
:
<% @result.each do |i| %>
<%= i["venue"] %>
<% end %>
返す:
{"zip"=>"94305", "country"=>"us", "localized_country_name"=>"USA", "city"=>"Stanford", "address_1"=>"750 Escondido Road", "name"=>"Ray's - Graduate Community Center", "lon"=>-122.158386, "id"=>5612552, "state"=>"CA", "lat"=>37.423393, "repinned"=>false}
{"zip"=>"94305", "country"=>"us", "localized_country_name"=>"USA", "city"=>"Stanford", "address_1"=>"750 Escondido Road", "name"=>"Ray's - Graduate Community Center", "lon"=>-122.158386, "id"=>5612552, "state"=>"CA", "lat"=>37.423393, "repinned"=>false}
{"zip"=>"94306", "country"=>"us", "localized_country_name"=>"USA", "city"=>"Palo Alto", "address_1"=>"25 Churchill Ave", "name"=>"Palo Alto High School", "lon"=>-122.154121, "id"=>1566333, "state"=>"CA", "lat"=>37.433186, "repinned"=>false}
{"zip"=>"94306", "country"=>"us", "localized_country_name"=>"USA", "city"=>"Palo Alto", "address_1"=>"25 Churchill Ave", "name"=>"Palo Alto High School", "lon"=>-122.154121, "id"=>1566333, "state"=>"CA", "lat"=>37.433186, "repinned"=>false}
{"zip"=>"94306", "country"=>"us", "localized_country_name"=>"USA", "city"=>"Palo Alto", "address_1"=>"25 Churchill Ave", "name"=>"Palo Alto High School", "lon"=>-122.154121, "id"=>1566333, "state"=>"CA", "lat"=>37.433186, "repinned"=>false}
{"zip"=>"94306", "country"=>"us", "localized_country_name"=>"USA", "city"=>"Palo Alto", "address_1"=>"25 Churchill Ave", "name"=>"Palo Alto High School", "lon"=>-122.154121, "id"=>1566333, "state"=>"CA", "lat"=>37.433186, "repinned"=>false}
しかし、私はこの使用してみてください:
<% @result.each do |i| %>
<%= i["venue"]["name"] %> <br />
<% end %>
をundefined method
[] 'nil:NilClass`エラーが発生しましたが、tにアクセスできません彼は私が表示しようとしている "会場"の中に "名前"をつけています。
私は適切なトラックにいますか?ハッシュの内部レベルを表示するには良い方法はありますか?どんなフィードバックも役に立ちます。ありがとう!
あなたの説明をいただきありがとうございます。両方とも本当にうまく動作します。 'fetch'を実行すると、どのエントリに' 'No venue''があるのか分かりました。 1つの質問ですが、この '@result.select {| r | r.present? && r.has_key?( '会場')}。それぞれの| i | '? – teresa