2013-06-13 2 views
0

Я делаю запрос, как это:Rails синтаксического анализа HTTPparty JSON ответ

response = HTTParty.get("http://vimeo.com/api/v2/video/#{ id }.json") 

И мой response.body выглядит так:

[{"id"=>44747277, "title"=>"ALPINIST feat. Chris O'Hara of PATSY O'HARA", ...}] 

Когда я пытаюсь response.body [ "ID" ] он возвращает id, так, как я могу правильно обработать этот json?

+0

Вы видите, что существует массив вокруг хеша, который вы ищете? try 'body [0] ['id']' –

+1

@MarianTheisen, я не думаю, что это имело бы какое-либо отношение к возвращаемому значению, являющемуся 'id'. Не следует ли 'response.body ['id']' возвращать ошибку? – zeantsoi

+0

'response.body [0]' returns '[' – xamenrax

ответ

3

response является HTTParty::Response объекта. response.body возвращает тело в строчном формате. Чтобы получить его как массив, запустите метод HTTParty parsed_response на вашем объекте. Это обеспечит массив, в котором вы можете работать в моде, изображенном в вопросе.

response.parsed_response[0]['id'] #=> 44747277 
+1

Зачем нам нужен 'parsed_response'? –

+0

и он работает, спасибо – xamenrax

+0

Не работает 'response [0] ['id']' work? @Nikita –

0

Ваш JSON возвращается массив, таким образом, чтобы получить первый элемент id вы должны сделать что-то вроде:

response[0]['id'] 
Смежные вопросы