Javascript 在JS中循环JSON
我有一个json文件,需要访问/循环一些属性 使用下面的代码,我在控制台中只接收“Object{dish:Array[1],price:Array[1],restaurant:Array[1]}”,而不是组数组中的所有162个元素 具体说明我需要什么:我想打印出组数组中的每个菜、价格、餐厅属性 我的JS看起来像这样:Javascript 在JS中循环JSON,javascript,json,loops,Javascript,Json,Loops,我有一个json文件,需要访问/循环一些属性 使用下面的代码,我在控制台中只接收“Object{dish:Array[1],price:Array[1],restaurant:Array[1]}”,而不是组数组中的所有162个元素 具体说明我需要什么:我想打印出组数组中的每个菜、价格、餐厅属性 我的JS看起来像这样: $(document).ready(function update() { var xhr = new XMLHttpRequest(); xhr.onreadys
$(document).ready(function update() {
var xhr = new XMLHttpRequest();
xhr.onreadystatechange = function() {
if(xhr.readyState === 4) {
var jsonData = JSON.parse(xhr.responseText);
for(var i=0; i< jsonData.result.extractorData.data[0].group.length; i+=1) {
var statusHTML = jsonData.result.extractorData.data[0].group[i];
}
console.log(statusHTML);
statusHTML += '</ul>';
document.getElementById('ajax').innerHTML = statusHTML;
}
};
xhr.open('GET', 'data/restaurantquery.json');
xhr.send();
setTimeout(update, 5000);
});
var statusHTML = "";
for(var i=0; i< jsonData.result.extractorData.data[0].group.length; i+=1) {
statusHTML += jsonData.result.extractorData.data[0].group[i];
}
console.log(statusHTML);
statusHTML += '</ul>';
document.getElementById('ajax').innerHTML = statusHTML;
var statusHTML = "";
for(var i=0; i< jsonData.result.extractorData.data[0].group.length; i+=1) {
statusHTML += "<li>";
statusHTML += jsonData.result.extractorData.data[0].group[i];
statusHTML += "</li>";
}
console.log(statusHTML);
statusHTML += '</ul>';
document.getElementById('ajax').innerHTML = statusHTML;
您总是将
statusHTML
分配给循环的当前迭代,而从不连接结果。将其更改为以下内容:
$(document).ready(function update() {
var xhr = new XMLHttpRequest();
xhr.onreadystatechange = function() {
if(xhr.readyState === 4) {
var jsonData = JSON.parse(xhr.responseText);
for(var i=0; i< jsonData.result.extractorData.data[0].group.length; i+=1) {
var statusHTML = jsonData.result.extractorData.data[0].group[i];
}
console.log(statusHTML);
statusHTML += '</ul>';
document.getElementById('ajax').innerHTML = statusHTML;
}
};
xhr.open('GET', 'data/restaurantquery.json');
xhr.send();
setTimeout(update, 5000);
});
var statusHTML = "";
for(var i=0; i< jsonData.result.extractorData.data[0].group.length; i+=1) {
statusHTML += jsonData.result.extractorData.data[0].group[i];
}
console.log(statusHTML);
statusHTML += '</ul>';
document.getElementById('ajax').innerHTML = statusHTML;
var statusHTML = "";
for(var i=0; i< jsonData.result.extractorData.data[0].group.length; i+=1) {
statusHTML += "<li>";
statusHTML += jsonData.result.extractorData.data[0].group[i];
statusHTML += "</li>";
}
console.log(statusHTML);
statusHTML += '</ul>';
document.getElementById('ajax').innerHTML = statusHTML;
在调试器中浏览您的代码,特别注意
statusHTML
在每一点上的值。这个长JSON不是重现问题的最短方法,因此这个问题缺少。太好了!谢谢你的提示。