麻烦从API哈希获得价值 - Ruby

时间:2014-01-18 23:39:26

标签: ruby

我正在进行API调用并收到以下响应:

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

当我这样做时:

api_call["shares"]

它只返回

shares

...我想要“股票”的价值,所以我有份额。我错过了什么?

1 个答案:

答案 0 :(得分: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']返回。