Javascript JQuery-无法访问json中返回的变量
我对编程非常陌生,因为我上周才开始编程。 代码部分-Javascript JQuery-无法访问json中返回的变量,javascript,jquery,json,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+"&m
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
我可以使用数据['status']或数据访问和显示“目的地地址”、“状态”和“来源地地址”。状态但无法访问行[]我已经尝试了我可能知道的所有方法
我想我可以只做数据、行、距离、文本,但什么也没发生
任何帮助都将不胜感激
行
是一个数组,以及元素
,您需要像这样访问它:
var text = data.rows[0].elements[0].distance.text;
// this yields "652 km"
您希望返回数组的第一个元素,因为它只有一个<代码>行[]不访问任何内容。括号内需要一个数字。可能有多个对象行
或元素
。填写所需的数组索引:
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"
}
行
是一个数组,以及元素
,您需要这样访问它:
var text = data.rows[0].elements[0].distance.text;
// this yields "652 km"
您希望返回数组的第一个元素,因为它只有一个<代码>行[]不访问任何内容。括号内需要一个数字。可能有多个对象行
或元素
。填写所需的数组索引:
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"
}
试一试
输出625km
试试
输出
625km
包括jquery并尝试解析使用json.parse返回的json数据,这将为您提供一个javascript数组对象
var dataArray = JSON.parse(data['status']);
alert(dataArray['status']);
希望这有助于包含jquery,并尝试解析使用json.parse返回的json数据,这将为您提供一个javascript数组对象
var dataArray = JSON.parse(data['status']);
alert(dataArray['status']);
希望这有助于首先将json解析为真实对象:
try {
var realObject = JSON.parse(jsonString);
} catch (err) {
console.log("error parsing json string");
}
您还可以通过以下方式访问:
var text = data.rows[0].elements[0].distance.text;
首先将json解析为真实对象:
try {
var realObject = JSON.parse(jsonString);
} catch (err) {
console.log("error parsing json string");
}
您还可以通过以下方式访问:
var text = data.rows[0].elements[0].distance.text;
可能重复的行
是一个数组,因此无法使用data.row.distance
访问其元素。您需要更具体的:行[0]。元素。距离。文本
元素也是一个数组:行[0]。元素[0]。距离。文本
行的可能副本
是一个数组,因此您无法使用数据。行。距离
访问其元素。您需要更具体的:行[0]。元素。距离。文本元素也是一个数组:行[0]。元素[0].distance.text
我很确定使用JQuery$。获取数据
变量包含未序列化的对象,而不是JSON字符串。在这种情况下,这将是google的问题:成功回调函数传递返回的数据,返回的数据将是XML根元素、文本字符串、JavaScript文件或JSON对象,根据响应头的MIME类型
,数据可以是文本(字符串)或对象(解析的JSON),不太可能返回(XML)文档,因为JSON字符串即使返回该响应头,也不会生成有效的XML。假设OP有正确的头,就不需要解析返回值。我很确定使用JQuery$。获取数据变量包含未序列化的对象,而不是JSON字符串。在这种情况下,这将是google的问题:成功回调函数传递返回的数据,这将是一个XML根元素、文本字符串、JavaScript文件或JSON对象,具体取决于响应的MIME类型
基于响应头数据可以是文本(字符串)或对象(解析的JSON),但不太可能是(XML)文档将被返回,因为即使JSON字符串返回响应头,它也不会生成有效的XML。假设OP具有正确的头,则无需解析返回值。