2014-01-18 16 views
1

Я делаю вызов API и получать следующий ответ:Trouble Получение значения из API Hash - Руби

{ 
    "id": "http://www.google.com/", 
    "shares": 8262403, 
    "comments": 827 
} 

Когда я делаю:

api_call["shares"] 

Это просто возвращает

shares 

... и я хочу значение «акции», поэтому у меня есть счетчик акций. Что мне не хватает?

ответ

3

Вы должны использовать JSON:

require 'json' 

str = '{ 
    "id": "http://www.google.com/", 
    "shares": 8262403, 
    "comments": 827 
}' 

JSON.parse(str)['shares'] # => 8262403 

Когда я api_call["shares"], он просто возвращает shares.

Это потому, что ваш ответ приходит как String. Теперь вы вызываете метод String#[]. Документы str[match_str] → new_str or nil говорит - Если задано match_str, эта строка возвращается, если она встречается в строке.

str['shares'] # => shares 

Это произошло согласно документации, как я уже упоминал. Строка ответа имеет подстроку shares, которая возвращается как вызов метода String#[], в вызове str['shares'].

Смежные вопросы