2011-02-06 7 views
7

나는 다음과 같은 해시 있습니다루비 액세스 해시 요소

{"title"=>"ga:browser=Firefox", "dimensions"=>[{:browser=>"Firefox"}], "metrics"=>[{:pageviews=>25474}], "id"=>"http://www.google.com/analytics/feeds/data?ids=ga:3906565&amp;ga:browser=Firefox&amp;start-date=2010-02-06&amp;end-date=2011-02-06", "updated"=>#<DateTime: 212163710400001/86400000,-1/3,2299161>} 

가 어떻게 페이지 뷰의 가치를 인쇄하는 것입니까?

답변

14

글쎄, 해시 맵 (배열이 아님)은 "metrics" 키를 배열에 매핑합니다. 그 배열은 유일한 요소로서 해시를 포함합니다. 그리고 해시는 :pageviews 키를 25474 값으로 매핑합니다. 그래서 당신이 할 수있는 값을 얻을 :

이것은 :pageviews 키를 사용하여 해시는 항상 키 "metrics"가 매핑되는 배열에서 위치 0에있을 것으로 가정
the_hash["metrics"][0][:pageviews] 

.

+0

감사합니다. 해시 맵 또는 배열인지 쉽게 알 수 있습니까? 아니면 그냥 구조로 말할 수 있습니까? – Tom

+1

@Tom : 해시 맵은 중괄호로 묶이고 배열은 대괄호로 묶습니다. 또한 해시가 비어 있지 않은 경우 키 - 값 쌍이'key => value' 형식으로 포함되지만 배열에는 단일 값만 포함됩니다 (물론 배열 또는 해시 일 수도 있음). – sepp2k

+1

당신은'variablename.class'를 사용하여 Ruby가 무엇인지 물어볼 수 있습니다. 여기서 "variablename"은 당신이 알고 싶어하는 변수입니다. 예를 들어,'variable = {}; puts variable.class'는 "Hash"또는'variable = [];을 출력합니다. puts variable.class'는 "Array"를 출력합니다. –