[英]Extracting values from certain fields in a json api request. (Ruby)
尝试在Udemy的API中提取字段“ searched_count”,但我不确定语法。
如果有人能指出我正确的方向,将不胜感激。 我正在使用Sinatra并使用net / http解析api请求。
require 'sinatra'
require 'net/http'
require 'json'
require 'openssl'
OpenSSL::SSL::VERIFY_PEER = OpenSSL::SSL::VERIFY_NONE
def get_search_count(term)
url = 'https://www.udemy.com/api-2.0/search-suggestions?q=java'
uri = URI(url)
response = Net::HTTP.get(uri)
JSON.parse(response)
return response ["results"][0]["searched_count"]
end
get '/' do
return get_search_count("java")
end
我正在尝试在网页上显示该号码。 运行它时,我没有收到任何错误,但是我无法确定我是否实际上从请求中收到了反馈。
如果有帮助,这是json文件的摘录:
{
"results": [
{
"_class": "search_log",
"id": 88,
"phrase": "java",
"searched_count": 3749730,
"url": "/courses/search/?q=java"
},
编辑:这是我尝试在网页上显示它。 位于index.erb中
<html>
<head>
<title><%= @title %></title>
</head>
<body>
<h1><%= @headline %></h1>
<p><%= @paragraph %></p>
<form action="/action_page.php" method="get">
Search Term: <input type="text" name="term"><br>
<input type="submit" value="Submit">
</form>
</body>
</html>
另外,我在web.rb中更新的代码:
require 'sinatra'
require 'net/http'
require 'json'
require 'openssl'
OpenSSL::SSL::VERIFY_PEER = OpenSSL::SSL::VERIFY_NONE
def get_search_count(term)
url = 'https://www.udemy.com/api-2.0/search-suggestions?q=java'
uri = URI(url)
response = Net::HTTP.get(uri)
parsed_response = JSON.parse(response)
return parsed_response ["results"][0]["searched_count"]
end
get '/' do
return get_search_count("java")
end
get '/term' do
erb :index
end
get '/action_page.php' do
return get_search_count(params[:name])
end
请把方法改成这样
def get_search_count(term)
url = 'https://www.udemy.com/api-2.0/search-suggestions?q=java'
uri = URI(url)
response = Net::HTTP.get(uri)
parsed_response = JSON.parse(response)
return parsed_response ["results"][0]["searched_count"]
end
注意:如果您正确获得响应,它将起作用。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.