没有将String隐式转换为Integer(TypeError)

时间:2015-11-20 12:05:33

标签: ruby-on-rails json

对不起新手问题,我是JSON的初学者。

我有以下json:

{
   "destination_addresses" : [ "San Francisco, Californie, États-Unis", "Victoria, BC, Canada" ],
   "origin_addresses" : [ "Vancouver, BC, Canada", "Seattle, Washington, États-Unis" ],
   "rows" : [
      {
         "elements" : [
            {
               "distance" : {
                  "text" : "1 707 km",
                  "value" : 1707145
               },
               "duration" : {
                  "text" : "3 jours 19 heures",
                  "value" : 327471
               },
               "status" : "OK"
            },
           ]
      },

   ],
   "status" : "OK"
}

我将获得duration价值。 我用过这一行

duration = json["rows"][0]["elements"]["duration"]["text"]

但我面对的是这个erorr

 no implicit conversion of String into Integer (TypeError)

1 个答案:

答案 0 :(得分:2)

查看示例JSON,elements是一个数组:

"elements" : [...

因此需要在数字上编入索引,例如

duration = json["rows"][0]["elements"][0]["duration"]["text"]

目前字符串"duration"正用于索引导致您看到的错误的elements数组。