【问题标题】:Parse Google Map Json with Jquery使用 Jquery 解析 Google Map Json
【发布时间】:2013-01-31 11:43:05
【问题描述】:

我有一个谷歌 Mpa Json 网址 http://maps.googleapis.com/maps/api/distancematrix/json?&origins=2020%20E%20main%20ST&destinations=100%20E%20Main%20St%20,Edmond,Ok&mode=driving&sensor=false

这给了我

{
   "destination_addresses" : [ "100 East Main Street, Edmond, OK 73034, USA" ],
   "origin_addresses" : [ "2020 East Main Street, Lamar, AR 72846, USA" ],
   "rows" : [
      {
         "elements" : [
            {
               "distance" : {
                  "text" : "410 km",
                  "value" : 409567
               },
               "duration" : {
                  "text" : "3 hours 49 mins",
                  "value" : 13759
               },
               "status" : "OK"
            }
         ]
      }
   ],
   "status" : "OK"
}

我正在尝试使用来解析它

  function callGoogle(inputOrigin, inputDst, inputMode)
      {
      $.getJSON('http://maps.googleapis.com/maps/api/distancematrix/json?', { origins: inputOrigin, destinations: inputDst, mode: inputMode,  sensor: false }, function (data) {

                $.each(data, function (i, item) {               
                    console.log(item.rows.elements.distance.text);

                });


            });

        }

但我遇到了错误。我如何使用 jquery 从这个 json 中获取 97.8 或 97766

【问题讨论】:

    标签: jquery json


    【解决方案1】:

    你的意思是这样吗?

    var data = {
        "destination_addresses": ["1000 Chopper Circle, Denver, CO 80204, USA"],
        "origin_addresses": [
            "2121 East Mulberry Street, Fort Collins Nursery, Fort Collins, CO 80524, USA"
        ],
        "rows": [
            {
                "elements": [
                    {
                        "distance": {
                            "text": "97.8 km",
                            "value": 97766
                        },
                        "duration": {
                            "text": "57 mins",
                            "value": 3449
                        },
                        "status": "OK"
                    }
                ]
            }
        ],
        "status": "OK"
    };
    
    alert(data.rows[0].elements[0].distance.value);
    

    注意,数据有两个数组,我使用 [0] 来获取每个数组的第一项。

    【讨论】:

    • 应该向 OP 解释为什么他必须声明数组的索引才能获得他想要的值。否则,他将来会带着关于新 JSON 字符串的相同问题回来。无论如何 +1。
    • @Ohgodwhy - 我添加了一条注释。
    猜你喜欢
    • 2011-06-06
    • 2020-10-07
    • 2016-08-27
    • 1970-01-01
    • 1970-01-01
    • 2011-05-10
    • 2015-11-11
    • 2022-01-20
    • 1970-01-01
    相关资源
    最近更新 更多