HTTParty возвращает строку - PullRequest
1 голос
/ 29 февраля 2012

Я использую API, который возвращает неверный тип MIME, он выглядит как text / html, а не как application / json.

Некоторые ответы - application / json, поэтому я знаю, что проблема связана с типом mime.

Но для текста / html (который возвращает действительный json с неверным типом mime) httparty будет только анализировать это в строку, а не в хеш.

Есть ли способ разобрать эту строку в хеш?

Я пытался использовать require 'json', но использование JSON.parse приводит к неожиданной ошибке ключа.

Ответы [ 2 ]

3 голосов
/ 09 сентября 2013

Если вы расширяете класс с помощью HTTParty, попробуйте добавить

format :json

к классу

также убедитесь, что вы анализируете тело ответа, а не объект ответа.

JSON.parse (получить (self.class.get ( "some_url", "some_params"). Тела)

1 голос
/ 29 февраля 2012

Без кода или API URL я могу только догадываться. Возможно, API может отвечать несколькими способами, и вам нужен соответствующий заголовок Accept.

class Foo
  include HTTParty
  headers 'Accept' => 'application/json'
end
...