JQuery - 无法访问在json中返回的变量

时间:2013-08-16 12:21:16

标签: javascript jquery json

我对编程很陌生,因为我上周才开始编程。 代码部分 -

var office = document.getElementById('start').value;
var pickup = document.getElementById('start').value;
 $.get("https://maps.googleapis.com/maps/api/distancematrix/json?origins="+office+"&destinations="+pickup+"&mode=drivinging&language=en&sensor=false",function(data){
alert(data['status']);

返回数据 -

http://maps.googleapis.com/maps/api/distancematrix/json?origins=edingbourgh&destinations=london&mode=drivinging&language=en&sensor=false

我可以使用数据['状态']访问并显示“ destination_addresses ”,“状态”和“ origin_addresses data.status 但无法访问 rows [] 内的任何内容我尝试了所有可能的方法。

我认为我可以做 data.row.distance.text ,但没有任何反应。

任何帮助将不胜感激

4 个答案:

答案 0 :(得分:2)

rows是一个数组,以及elements,您需要像这样访问它:

var text = data.rows[0].elements[0].distance.text;
// this yields "652 km"

您想要返回数组的第一个元素,因为它只有一个。 rows[]无法访问任何内容。您需要括号内的数字。可能有多个对象rowselements。填写所需的数组索引:

var text = data.rows[2].elements[5].distance.text;
// this yields text from the sixth element of the third row.


原始回复:

  {
     "destination_addresses" : [ "London, UK" ],
     "origin_addresses" : [ "Edinburgh, City of Edinburgh, UK" ],
     "rows" : [
        {
           "elements" : [
              {
                 "distance" : {
                    "text" : "652 km",
                    "value" : 652135
                 },
                 "duration" : {
                    "text" : "6 hours 44 mins",
                    "value" : 24247
                 },
                 "status" : "OK"
              }
           ]
        }
     ],
     "status" : "OK"
  }

答案 1 :(得分:1)

尝试

alert(data['rows'][0].elements[0].distance.text);

输出 625km

答案 2 :(得分:0)

包含jquery并尝试解析使用JSON.parse返回的json数据,这将为您提供一个javascript数组对象

var dataArray = JSON.parse(data['status']);
alert(dataArray['status']);

希望这有帮助

答案 3 :(得分:0)

首先将json解析为真实对象:

try {
  var realObject = JSON.parse(jsonString);
} catch (err) {
  console.log("error parsing json string");
}

并且您应该可以通过以下方式访问:

var text = data.rows[0].elements[0].distance.text;