JSON解析JavaScript字符串

时间:2018-12-28 07:19:41

标签: ruby-on-rails json

尝试使用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

1 个答案:

答案 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)