尝试使用JSON解析json.parse时出现意外令牌错误
require "net/http"
require "uri"
url = URI.parse("https://url-goes-here")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
req = Net::HTTP::Get.new(url.request_uri)
req['Accept'] = 'application/json'
res = Net::HTTP.new(url.host, url.port).start do |http|
http.request(req)
end
json = JSON.parse(res)
puts json
答案 0 :(得分:0)
响应中的数据看起来像JSONP,这是做rpc的旧方法。除了返回简单的JSON之外,它不会输出some_js_callback_function_name({here_goes: the_json})
,通常还会有一个参数来控制函数名称。
要从中获取json,请在解析前修剪函数调用:
json_data = res.body.gsub(/\A[^(]+\(/, '').gsub(/\)\s*\z/, '')
json = JSON.parse(json_data)