Javascript 从url检索Json成功,但表中未显示任何数据
我尝试运行代码,并成功地从url检索json,因为返回了警报成功。但是,当我尝试检索数据时,json文件没有结果。有人能帮我吗Javascript 从url检索Json成功,但表中未显示任何数据,javascript,json,Javascript,Json,我尝试运行代码,并成功地从url检索json,因为返回了警报成功。但是,当我尝试检索数据时,json文件没有结果。有人能帮我吗 $.ajax({ 键入:“获取”, 网址:'https://maps.googleapis.com/maps/api/directions/json?origin=Disneyland&destination=Universal+工作室+好莱坞&key=YOUR-API-key', 数据类型:“json”, 成功:功能(数据){ 图纸(数据); 警惕(“成功!”);
$.ajax({
键入:“获取”,
网址:'https://maps.googleapis.com/maps/api/directions/json?origin=Disneyland&destination=Universal+工作室+好莱坞&key=YOUR-API-key',
数据类型:“json”,
成功:功能(数据){
图纸(数据);
警惕(“成功!”);
}
});
函数绘图表(数据){
对于(变量i=0;i
表格{
边框:2个实心#666;
宽度:100%;
}
th{
背景:#f8f8;
字体大小:粗体;
填充:2px;
}
Json到HTML
拉特
液化天然气
正如其他用户所评论的,您应该首先检查从api获得的数据是否正确。表示您已到达该点的警报并不保证您拥有所需的数据。另一方面,如果你有正确的数据,请考虑这个解决方案
根据您试图在表中绘制的数据结构,我认为可能是这样的:
[
{
"lat": 123,
"lng": 456,
}, {
"lat": 789,
"lng": -456,
}, {
"lat": 321,
"lng": 956,
}
]
data = [{lat: latValue0, lng :lngValue0}, {lat: latValue1, lng : lngValue1}, ...]
function drawTable(data) {
let table = $("#personDataTable");
data.forEach(row => {
table.append(`<tr><td>${row.lat}</td><td>${row.lng}</td></tr>`)
});
}
当然会有更多的数据,但我想这些是与你的情况相关的数据。如果是这种情况,一种方法如下:
const数据集=[
{
拉丁美洲:123,
液化天然气:456,
}, {
拉脱维亚:789,
液化天然气:-456,
}, {
拉丁美洲:321,
液化天然气:956,
}
];
函数drawTable(数据集){
const rows=dataset.map(drawRow.join)(“”);
document.querySelector('#root')。innerHTML=`
纬度
经度
${rows}
`;
}
函数drawRow(数据){
返回`
${data.lat}
${data.lng}
`;
}
//在您的示例中,对函数的调用将在ajax方法中的回调成功中进行
绘图表(数据集)代码>
表格{
边框:2个实心#666;
宽度:100%;
}
th{
背景:#f8f8;
字体大小:粗体;
填充:2px;
}
正如其他用户所评论的,您应该首先检查从api获得的数据是否正确。表示您已到达该点的警报并不保证您拥有所需的数据。另一方面,如果你有正确的数据,请考虑这个解决方案
根据您试图在表中绘制的数据结构,我认为可能是这样的:
[
{
"lat": 123,
"lng": 456,
}, {
"lat": 789,
"lng": -456,
}, {
"lat": 321,
"lng": 956,
}
]
data = [{lat: latValue0, lng :lngValue0}, {lat: latValue1, lng : lngValue1}, ...]
function drawTable(data) {
let table = $("#personDataTable");
data.forEach(row => {
table.append(`<tr><td>${row.lat}</td><td>${row.lng}</td></tr>`)
});
}
当然会有更多的数据,但我想这些是与你的情况相关的数据。如果是这种情况,一种方法如下:
const数据集=[
{
拉丁美洲:123,
液化天然气:456,
}, {
拉脱维亚:789,
液化天然气:-456,
}, {
拉丁美洲:321,
液化天然气:956,
}
];
函数drawTable(数据集){
const rows=dataset.map(drawRow.join)(“”);
document.querySelector('#root')。innerHTML=`
纬度
经度
${rows}
`;
}
函数drawRow(数据){
返回`
${data.lat}
${data.lng}
`;
}
//在您的示例中,对函数的调用将在ajax方法中的回调成功中进行
绘图表(数据集)代码>
表格{
边框:2个实心#666;
宽度:100%;
}
th{
背景:#f8f8;
字体大小:粗体;
填充:2px;
}
问题在于对jQuery的理解和使用不当。首先,您的ajax是错误的。我的意思是,您在链接的末尾有“YOUR-API-KEY”,所以我不知道您是如何以及为什么说数据被成功检索的?但是,假设是这样的,假设您解析JSON和/或操纵数据的方式是这样的:
[
{
"lat": 123,
"lng": 456,
}, {
"lat": 789,
"lng": -456,
}, {
"lat": 321,
"lng": 956,
}
]
data = [{lat: latValue0, lng :lngValue0}, {lat: latValue1, lng : lngValue1}, ...]
function drawTable(data) {
let table = $("#personDataTable");
data.forEach(row => {
table.append(`<tr><td>${row.lat}</td><td>${row.lng}</td></tr>`)
});
}
我的意思是,这是我在你的代码中看到的:data[I].lat
和data[I].lng
因此,有了如此巨大的工作量,我们可以像这样完成绘制表格行的实际过程:
[
{
"lat": 123,
"lng": 456,
}, {
"lat": 789,
"lng": -456,
}, {
"lat": 321,
"lng": 956,
}
]
data = [{lat: latValue0, lng :lngValue0}, {lat: latValue1, lng : lngValue1}, ...]
function drawTable(data) {
let table = $("#personDataTable");
data.forEach(row => {
table.append(`<tr><td>${row.lat}</td><td>${row.lng}</td></tr>`)
});
}
函数绘图表(数据){
let table=$(“#personDataTable”);
data.forEach(行=>{
table.append(`${row.lat}${row.lng}`)
});
}
就这样。你不需要更多。如果您不熟悉ES6语法,可以转到左侧粘贴ES6代码,并在右侧查看其编译结果。顺便说一句,对于
循环,forEach()
优于“经典”。它们在做同样的工作,但是语法更少,出错的空间也更少
顺便说一句,jQuery的.append()
错误在于将追加字符串与追加页面上的另一个元素相混淆,而您是使用$
选择该元素的。阅读更多关于它的信息
进一步阅读:
问题在于对jQuery的理解和使用不当。首先,您的ajax是错误的。我的意思是,您在链接的末尾有“YOUR-API-KEY”,所以我不知道您是如何以及为什么说数据被成功检索的?但是,假设是这样的,假设您解析JSON和/或操纵数据的方式是这样的:
[
{
"lat": 123,
"lng": 456,
}, {
"lat": 789,
"lng": -456,
}, {
"lat": 321,
"lng": 956,
}
]
data = [{lat: latValue0, lng :lngValue0}, {lat: latValue1, lng : lngValue1}, ...]
function drawTable(data) {
let table = $("#personDataTable");
data.forEach(row => {
table.append(`<tr><td>${row.lat}</td><td>${row.lng}</td></tr>`)
});
}
我的意思是,这是我在你的代码中看到的:data[I].lat
和data[I].lng
因此,有了如此巨大的工作量,我们可以像这样完成绘制表格行的实际过程:
[
{
"lat": 123,
"lng": 456,
}, {
"lat": 789,
"lng": -456,
}, {
"lat": 321,
"lng": 956,
}
]
data = [{lat: latValue0, lng :lngValue0}, {lat: latValue1, lng : lngValue1}, ...]
function drawTable(data) {
let table = $("#personDataTable");
data.forEach(row => {
table.append(`<tr><td>${row.lat}</td><td>${row.lng}</td></tr>`)
});
}
函数绘图表(数据){
let table=$(“#personDataTable”);
data.forEach(行=>{
T