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

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

当我这样做时:
api_call["shares"]

它只是回来了
shares

……我想要“股票”的价值,所以我有股票的数量。我错过了什么?

最佳答案

您需要使用JSON

require 'json'

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

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

当我执行api_call["shares"]时,它只返回shares
这是因为你的回答是String。现在调用String#[]方法。docsstr[match_str] → new_str or nil表示-如果给定匹配字符串,则如果该字符串出现在字符串中,则返回该字符串。
str['shares'] # => shares

正如我所提到的,这是根据文件发生的。响应字符串在shares调用中有一个子字符串String#[],该子字符串将作为方法调用str['shares']返回。

关于ruby - 无法从API哈希中获取值(value)-Ruby,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/21211302/

10-09 05:28