JSON解析Google API自定义搜索错误

时间:2011-11-17 20:38:13

标签: ruby json google-api httparty

我有以下代码:

require 'rubygems'
require 'httparty'
require 'pp'
require 'json'

class Search
  include HTTParty
  format :json
end


x = Search.get('https://www.googleapis.com/customsearch/v1key=AI...&cx=013...=flowers&alt=json')
x = x.to_s

result = JSON.parse(x)

每当我在google搜索结果中运行它时,我会得到以下信息:

FlowerPlaces.com Delivers Fresh <b>Flowers</b> To Your Place! <br>  
Order <b>Flowers</b> Online or Call 800-411-9049 for Same Day <b>Flower</b> 
Delivery.", "cacheId"=>"v94CIDza4gQJ"}]}' (JSON::ParserError)
from /usr/local/lib/ruby/1.9.1/json/common.rb:148:in `parse'
from gg.rb:15:in `<main>'

以下是JSON尝试解析的字符串版本中的同一行:

Order <b>Flowers</b> Online or Call 800-411-9049 for Same Day <b>Flower</b> 
Delivery.\", \"cacheId\"=>\"v94CIDza4gQJ\"}]}"

现在,我已经尝试了多次搜索问题,我想知道我做错了什么?我添加到.to_s,因为json解析器尝试将HTTParty get语句转换为字符串,但不能然后抛出错误。在它抛出错误之前,JSON解析器似乎一直到字符串的末尾(这是google已经返回给我的所有内容)。

我错过了什么?

1 个答案:

答案 0 :(得分:1)

你需要将.body添加到x = Search.get('http:// ....')的末尾,如下所示:

x = Search.get('http://....').body