2011-02-06 29 views
7

Aşağıdaki karmaya sahip:Yakut erişim karma elemanı

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

nasıl sayfa görüntüleme değerini ekrana getirir?

cevap

14

Eh, bir diziye anahtar "metrics" eşleştiren bir hashmap (değil bir dizi) var. Bu dizi tek öğe olarak bir karma içerir. Ve bu karma anahtar :pageviews anahtarını 25474 değerine eşler. Yani yapabileceği değeri elde etmek:

Bu :pageviews anahtarla karma her zaman anahtar "metrics" eşleştirilmiş dizisinde 0 konumunda olacağını varsayar
the_hash["metrics"][0][:pageviews] 

.

+0

sayesinde, bir HashMap veya dizi olup olmadığını söylemek için kolay bir yol var? ya da sadece yapı tarafından söyleyebilir misin? – Tom

+1

@Tom: Bir hashmap, kaşlı ayraçlar ve bir dizi köşeli parantez ile çevrelenmiştir. Ayrıca, bir karma boş değilse, bir anahtar sadece tek değerler (elbette bunlar diziler veya kargaşalar olabilir) içerirken, "anahtar => değer" biçiminde anahtar-değer çiftleri içerir. – sepp2k

+1

“variablename” hakkında bilmek istediğiniz bir değişken olan 'variablename.class' kullanarak Ruby'den ne olduğunu sorabilirsiniz. Örneğin, değişken = {}; variable.class' koyar "Hash" veya "variable = []; variable.class "koyar" çıktı "koyar". –