Ошибка синтаксического анализа JSON Google API - PullRequest
1 голос
/ 18 ноября 2011

У меня есть следующий код:

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 пытается преобразовать оператор get HTTParty в строку и не может, а затем выдает ошибку.Похоже, что JSON-синтаксический анализатор доходит до конца строки (то есть всего, что мне вернул Google), прежде чем выдает ошибку.

Чего мне не хватает?

1 Ответ

1 голос
/ 18 ноября 2011

Вам нужно добавить .body в конец x = Search.get ('http: // ....') примерно так:

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