【发布时间】:2017-04-30 10:48:49
【问题描述】:
我正在使用英雄联盟的外部 API。到目前为止,我已经能够从 API 获得响应,该响应返回一个 JSON 对象。
@test_summoner_name = ERB::Util.url_encode('Jimbo')
@url = "https://na.api.pvp.net/api/lol/na/v1.4/summoner/by-name/#{@test_summoner_name}?api_key=#{RIOT_API_KEY}"
response = HTTParty.get(@url)
@summoner = JSON.parse(response.body)
@summoner_name = @summoner[:name]
JSON 对象如下所示:
{"jimbo"=>{"id"=>12345678, "name"=>"Jimbo", "profileIconId"=>1234, "revisionDate"=>123456789012, "summonerLevel"=>10}}
所以,我可以在我的视图中输出带有 @summoner 变量的 JSON 对象。但是当我尝试输出我的 @summoner_name 变量时,我只得到一个空白字符串。
作为参考,这是我目前的看法:
Summoner Object: <%= @summoner %><br>
Summoner Name: <%= @summoner_name %>
任何帮助将不胜感激。我现在一整天都在跌跌撞撞地完成这个过程。
【问题讨论】:
-
我建议您阅读有关 ruby 哈希的基本教程。 rubylearning.com/satishtalim/ruby_hashes.html
-
@Зелёный 公平地说,这是一个很好的问题,因为 JSON 有时会包装响应,这对于 API 使用者来说并非总是不言而喻的。嵌套(但名称相似)键是 JSON 的常见问题。
标签: ruby-on-rails json ruby riot-games-api ruby-hash