1

我正在尝试非常轻松地完成一些事情,但我无法将它解决到我在 Rails 中的初学者水平。问题是如何将 JSON 对象属性分配给 rails 对象。我正在尝试使用一些参数向 Google Map 的 URL 发送请求。如果没有 JSON 解析,它工作得很好,但是当我尝试解析它时,我收到很多错误。当我查询 URL ([http://maps.googleapis.com/maps/api/directions/json?origin=40.983204,29.0216549&destination=40.99160908659266,29.02334690093994&sensor=false][1]) 时,来自 Google 的常规 JSON 响应是像下面一样;

{
  "routes" : [
    {
      "bounds" : {
        "southwest" : {
          "lat" : 40.98289,
          "lng" : 29.02054
        },
        "northeast" : {
          "lat" : 40.99148,
          "lng" : 29.02388
        }
      },
      "summary" : "Mühürdar Cd",
      "waypoint_order" : [],
      "legs" : [
        {
          "start_location" : {
            "lat" : 40.98322,
            "lng" : 29.02166
          },
          "distance" : {
            "text" : "1.3 km",
            "value" : 1324
          },

继续。

我必须获得“摘要”属性的代码是;

@request = Net::HTTP.get(URI.parse('http://maps.googleapis.com/maps/api/directions/json?origin=40.983204,29.0216549&destination=40.99160908659266,29.02334690093994&sensor=false'))
    @result=JSON.parse(@request)["routes"]["summary"]

我想问我从响应中获取摘要属性的正确方法是什么?

4

1 回答 1

1
hash['routes'][0]['legs'][0]['duration']['text'] 

将允许您访问文本和

hash['routes'][0]['legs'][0]['duration']['value'] 

价值。试试看嘛

hash['routes'][0]['legs'][0]['duration'].class 

查看它是什么类型并相应地访问它

于 2013-10-03T10:36:29.200 回答