我正在进行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/