如何使用ruby来解析foursquare API给出的json响应

时间:2011-09-20 23:12:49

标签: json api foursquare

我正在使用foursquare API搜索特定的地点。我使用以下网址: https://api.foursquare.com/v2/venues/venue_id?oauth_token=Access_token

该网站的回复是json。

然后我使用以下代码尝试使用ruby解析此json响应:

require 'rest-open-uri'
require 'json'

url = 'https://api.foursquare.com/v2/venues/venue_id?oauth_token=Access_token'

buffer = open(url, "UserAgent" => "Ruby-Wget").read

result = JSON.parse(buffer)

以下是我得到的错误代码:

C:/RailsInstaller/Ruby1.9.2/lib/ruby/1.9.1/net/http.rb:678:在connect': SSL_con nect returned=1 errno=0 state=SSLv3 read server certificate B: certificate verif y failed (OpenSSL::SSL::SSLError) from C:/RailsInstaller/Ruby1.9.2/lib/ruby/1.9.1/net/http.rb:678:in集团 k in connect'         来自C:/RailsInstaller/Ruby1.9.2/lib/ruby/1.9.1/timeout.rb:44:in timeou t' from C:/RailsInstaller/Ruby1.9.2/lib/ruby/1.9.1/timeout.rb:89:in timeou T'

此错误代码是否意味着我无法打开此网址,因为它以“https”开头?有什么方法可以用来打开这个url并解析json响应吗?

提前致谢!

2 个答案:

答案 0 :(得分:16)

这应该有效:

gem install httparty

然后

require 'httparty'
require 'json'

response = HTTParty.get("https://api.foursquare.com/v2/venues/vid", 
:query => {:oauth_token => "abc"})

json = JSON.parse(response.body)

答案 1 :(得分:-3)

RUBY区分大小写。 要求'json'#json必须是小写

JSON.parse()来
例如 JSON.parse(response.body)#JSON必须全部为大写