我得到以下 Ruby 对象返回(从使用garb gem对 Google Analytics API 的查询,来自那里的 README.md 上显示的示例调用,Exits.results(profile, :filters => {:page_path.eql => '/'})
)
> data.results
=> [#<OpenStruct page_path="/", exits="3706", pageviews="10440">]
我想提取浏览量值(10440),但不知道该怎么做。我看到我的对象data.results
是array
length类1
,但 data.first 是类OpenStruct
,其返回值看起来几乎相同:
irb(main):140:0> data.results.class
=> Array
irb(main):141:0> data.results.length
=> 1
irb(main):142:0> data.first
=> #<OpenStruct page_path="/", exits="3706", pageviews="10440">
irb(main):143:0> data.first.class
=> OpenStruct
而data
它本身似乎是一个自定义返回类型,称为ResultsSet
:
irb(main):144:0> data.class
=> Garb::ResultSet
irb(main):145:0> data
=> #<Garb::ResultSet:0x00000002411070 @results=[#<OpenStruct page_path="/", exits="3706", pageviews="10440">], @total_results=1, @sampled=false>
irb(main):146:0>
很多数据结构,但不知道如何获得我想要的价值。我收集OpenStruct
到与哈希有关,所以我想data.first["pageviews"]
会这样做,
NoMethodError: undefined method `[]' for #<OpenStruct page_path="/", exits="3706", pageviews="10440">
from (irb):146
from /usr/bin/irb:12:in `<main>'
同时data.first.keys
返回nil
。不知道如何取出我的数据,(没有将长度为 1 的数组转换data.results
为字符串并用 grep 解析,这似乎很疯狂。有什么想法吗?