Javascript 推送函数在嵌套的json调用中不起作用(使用jquery从多个API)
我想使用多个JSON API创建一个HTML表。这些API相互依赖,因此我必须对它们进行嵌套的getJSON调用 我使用了嵌套的getJSON调用。然而,只有外部推力起作用,内部推力不起作用。这就是为什么创建的表中只显示城市名称的原因 在代码中进行轻微编辑:Javascript 推送函数在嵌套的json调用中不起作用(使用jquery从多个API),javascript,jquery,html,ajax,getjson,Javascript,Jquery,Html,Ajax,Getjson,我想使用多个JSON API创建一个HTML表。这些API相互依赖,因此我必须对它们进行嵌套的getJSON调用 我使用了嵌套的getJSON调用。然而,只有外部推力起作用,内部推力不起作用。这就是为什么创建的表中只显示城市名称的原因 在代码中进行轻微编辑: var tr; $( document ).ready(function() { $.getJSON("project.json", function(data){ $.each(data, func
var tr;
$( document ).ready(function() {
$.getJSON("project.json", function(data){
$.each(data, function(key, value){
tr = [];
tr.push('<tr>');
$.each(value, function(key1, value1){
$.getJSON("builder.json", function(data2){
$.each(data2, function(key2, value2){
if (key2 == key){
//console.log(value2);
tr.push('<td>'+ (value2) +'</td>');
return;
}
});
});
tr.push('<td>'+ (value1.project) +'</td>');
//console.log(value1.project);
$.getJSON("city.json", function(data3){
$.each(data3, function(key3, value3){
if (key3 == value1.city){
//console.log(value3);
tr.push('<td>'+ (value3) +'</td>');
return;
}
});
});
$.getJSON("price.json", function(data4){
$.each(data4, function(key4, value4){
if (key4 == value1.project_id){
//console.log(value4);
tr.push('<td>'+ (value4) +'</td>');
return;
}
});
});
});
tr.push('</tr>');
$('#emp').append($(tr.join('')));
});
});
});
city.json
{
"1":"mumbai",
"2":"delhi",
"3":"pune",
"4":"banglore"
}
project.json
{
"1":[
{"project_id":1,"project":"Alamiz City","city":1},
{"project_id":2,"project":"Alamiz Tech City","city":1},
{"project_id":3,"project":"Alamiz Down Town","city":3},
{"project_id":10,"project":"Alamiz Nature","city":2}
],
"3":[
{"project_id":4,"project":"The Tech Sky","city":1},
{"project_id":5,"project":"Alphonso","city":1}
],
"4":[
{"project_id":6,"project":"Royal Tech","city":4},
{"project_id":7,"project":"Future City","city":4}
],
"6":[
{"project_id":8,"project":"Zahi Skyline","city":1}
],
"2":[
{"project_id":9,"project":"Souras City","city":4}
]
}
price.json
{
"1":"2cr",
"2":"3.5cr",
"3":"1cr",
"4":"2cr",
"5":"4cr",
"6":"4cr",
"7":"5cr",
"8":"3cr",
"9":"7cr",
"10":"6cr"
}
$。每个都是异步的,当它在同步的for循环中运行时,for循环在任何回调触发之前完成
$。getJSON()是一个异步请求。这里到处都是同步和异步逻辑的混合。我建议尝试实现,给它所有四个getJSON
调用,然后是when()的then()
将同时接收所有响应,以便您根据需要进行处理。格式化JSON API结果会很有帮助。我对代码进行了一些编辑。现在我不明白的是,只有城市被添加到表中。该表列出了建筑商项目城市价格。如何将它们全部插入表中?@Taplar您能否编辑此代码并为我提供解决方案。$。每个
都绝对不是异步的
{
"1":[
{"project_id":1,"project":"Alamiz City","city":1},
{"project_id":2,"project":"Alamiz Tech City","city":1},
{"project_id":3,"project":"Alamiz Down Town","city":3},
{"project_id":10,"project":"Alamiz Nature","city":2}
],
"3":[
{"project_id":4,"project":"The Tech Sky","city":1},
{"project_id":5,"project":"Alphonso","city":1}
],
"4":[
{"project_id":6,"project":"Royal Tech","city":4},
{"project_id":7,"project":"Future City","city":4}
],
"6":[
{"project_id":8,"project":"Zahi Skyline","city":1}
],
"2":[
{"project_id":9,"project":"Souras City","city":4}
]
}
{
"1":"2cr",
"2":"3.5cr",
"3":"1cr",
"4":"2cr",
"5":"4cr",
"6":"4cr",
"7":"5cr",
"8":"3cr",
"9":"7cr",
"10":"6cr"
}