[英]JSON response from Google Analytics api
我正在使用google-api-ruby-client從Google Analytics(分析)api獲得響應,該響應是成功的,盡管有點令我困惑的是響應對象。 我想知道如何向下鑽取特定的鍵及其值,甚至解析響應以使其更易於理解。
以下是我認為是JSON響應的相關部分
"{\"kind\":\"analytics#gaData\",\"id\":\"https://www.googleapis.com/analytics/v3/data/ga?ids=ga:88893966&dimensions=ga:pagePath&metrics=ga:pageviews&filters=ga:pagePath%3D%3D/&start-date=2014-01-01&end-date=2014-07-22\",\"query\":{\"start-date\":\"2014-01-01\",\"end-date\":\"2014-07-22\",\"ids\":\"ga:88893966\",\"dimensions\":\"ga:pagePath\",\"metrics\":[\"ga:pageviews\"],\"filters\":\"ga:pagePath==/\",\"start-index\":1,\"max-results\":1000},\"itemsPerPage\":1000,\"totalResults\":1,\"selfLink\":\"https://www.googleapis.com/analytics/v3/data/ga?ids=ga:88893966&dimensions=ga:pagePath&metrics=ga:pageviews&filters=ga:pagePath%3D%3D/&start-date=2014-01-01&end-date=2014-07-22\",\"profileInfo\":{\"profileId\":\"88893966\",\"accountId\":\"53082810\",\"webPropertyId\":\"UA-53082810-1\",\"internalWebPropertyId\":\"85713348\",\"profileName\":\"All Web Site Data\",\"tableId\":\"ga:88893966\"},\"containsSampledData\":false,\"columnHeaders\":[{\"name\":\"ga:pagePath\",\"columnType\":\"DIMENSION\",\"dataType\":\"STRING\"},{\"name\":\"ga:pageviews\",\"columnType\":\"METRIC\",\"dataType\":\"INTEGER\"}],\"totalsForAllResults\":{\"ga:pageviews\":\"8\"},\"rows\":[[\"/\",\"8\"]]}"
這是從
# make queries
result = client.execute(:api_method => api_method, :parameters => {
'ids' => PROFILE,
'start-date' => Date.new(2014,1,1).to_s,
'end-date' => Date.today.to_s,
'dimensions' => 'ga:pagePath',
'metrics' => 'ga:pageviews',
'filters' => 'ga:pagePath==/'
})
puts ap(result)
另外,當我這樣做時:
puts ap(result.data.rows.inspect)
#returns
"[[\"/\", \"8\"]]"
當我嘗試
response = JSON.parse(result.data.totalsForAllResults)
puts ap(response)
# returns error
TypeError: no implicit conversion of #<Class:0x00000001950550> into String
我想知道如何在不使用反斜杠的情況下格式化響應,以及如何表示獲得總頁面瀏覽量?
您的語法已關閉。
如果result
只是一個字符串,它是一個json對象,就像上面的樣子,那么您想要的是:
response = JSON.parse(result)
ap response["totalsForAllResults"]["ga:pageviews"]
查看google-api-ruby-client, result.data
返回一個對象(如果可以從api模式解析),如果您傳遞了媒體類型“ application / json”,則返回一個哈希,否則返回一個字符串。 因此,您需要確定您是以對象還是哈希形式訪問響應數據。 上面的示例將原始字符串解析為ruby哈希。
TL;博士; 有多種獲取所需數據的方法。
是的,您的語法已關閉。 它看起來應該像這樣。
https://www.googleapis.com/analytics/v3/data/ga?ids=ga:_____&dimensions=ga:date&metrics=ga:impressions,ga:adClicks,ga:adCost&start-date=2015-10-13&end-date=today
必須提供BaseUrl,id,指標,開始日期和結束日期。 並且不要忘記也插入access_token。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.