2017-02-20 90 views
0

我正在玩Github API,並試圖訪問個別元素,但這樣做有問題,主要的紅寶石文件;如何訪問此JSON解析哈希中的元素?

require 'octokit' 

Octokit.configure do |c| 
    c.login = 'example_user' 
    c.password = 'password' 
end 

user = Octokit.user 'example_user' 

uri = URI.parse("https://api.github.com/repos/angular/angular/stargazers") 

http = Net::HTTP.new(uri.host, uri.port) 

http.use_ssl = (uri.scheme == 'https') 
http.verify_mode = OpenSSL::SSL::VERIFY_NONE 

request = Net::HTTP::Get.new(uri.request_uri) 

res = http.request(request) 
response = JSON.parse(res.body) 

我可以訪問例如第一個哈希沒有問題;

puts response[0] 

但是,如果我嘗試訪問一個鍵的值,我只是得到一個空的返回;

puts response[0][:url] 

任何想法我做錯了什麼?

回答

2

隨着JSON.parse你字符串化的按鍵,從而(假設,即response[0]已經拿到了"url"鍵):

response[0]['url'] 
+0

三江源@安德烈 - 傑伊涅科打開我的眼睛了「stringifyed」鍵的事實。 – jbk

+0

@jbk沒有probs!有一種方法可以在解析json的同時將鍵轉換爲符號(傳遞'symbolize_names:true'選項)。但請注意,它不是遞歸的,只會象徵「一級」鍵,而不是嵌套鍵 –