解析然后读取JSON / HTTParty :: Response的特定值

时间:2015-08-14 12:01:28

标签: ruby-on-rails json httparty

我希望能够从此代码中检索层和分区,但是当使用来自HTTParty的响应对象并执行dd <- c(17.32571,17.02498,16.71613,16.40615, 16.10242,15.78516,15.47813,15.19073, 14.95551,14.77397) par(mfrow = c(1,2)) plot(dd) plot(cumsum(diff(dd))) > dd [1] 17.32571 17.02498 16.71613 16.40615 16.10242 15.78516 15.47813 15.19073 14.95551 [10] 14.77397 > cumsum(diff(dd)) [1] -0.30073 -0.60958 -0.91956 -1.22329 -1.54055 -1.84758 -2.13498 -2.37020 -2.55174 时,它会出现“无法将字符串隐式转换为整数”,这意味着它需要一个整数,但我不知道在哪里

这是我得到的回复(我在循环中这样做,这就是我用res[0]["#{id}"]["tier"]输入ID的原因

"#{id}"

2 个答案:

答案 0 :(得分:3)

你的json就像下面的

{"37714607": [
   {
      "queue": "RANKED_SOLO_5x5",
      "name": "Diana's Patriots",
      "entries": [{
         "leaguePoints": 32,
         "isFreshBlood": false,
         "isHotStreak": false,
         "division": "IV",
         "isInactive": false,
         "isVeteran": false,
         "losses": 65,
         "playerOrTeamName": "Wicked7000",
         "playerOrTeamId": "37714607",
         "wins": 59
      }],
      "tier": "GOLD"
   },

所以首先id =“37714607”然后数组开始([)数组包含哈希,所以第一个哈希有"tier"

所以它应该是

 tiers = []
 res["#{id}"].each do |result| #id = 37714607 
   tiers << result["tier"]
 end

答案 1 :(得分:1)

似乎你需要做res[id.to_s][0]["tier"] - 首先取根键,然后取第一个元素(反之亦然)。