2014-01-18 157 views
1

我想提出一个API调用和接收以下响应:麻烦值从API哈希 - 红宝石

{ 
    "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']