2011-02-06 1 views
7

は、私は、次のハッシュを持っている:Rubyのアクセスハッシュ要素

{"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"を出力します。 –