Javascript 从json和AJAX返回数据
我想从json数据中使用XMLHttpRequest显示所有作业,但无法显示数据。这是我的职责:Javascript 从json和AJAX返回数据,javascript,json,Javascript,Json,我想从json数据中使用XMLHttpRequest显示所有作业,但无法显示数据。这是我的职责: function getJobs () { let httpRequest = new XMLHttpRequest(); httpRequest.open('GET', 'http://codepen.io/jobs.json', true); httpRequest.onreadystatechange = () => { if (httpRequest.readySt
function getJobs () {
let httpRequest = new XMLHttpRequest();
httpRequest.open('GET', 'http://codepen.io/jobs.json', true);
httpRequest.onreadystatechange = () => {
if (httpRequest.readyState == 4) {
let data = JSON.parse(httpRequest.responseText);
Object.keys(data).forEach( (key) => {
console.log(key[0].company_name); // undefine
});
}
};
httpRequest.send();
}
getJobs();
你能帮我讲讲我的功课吗?json是数组的对象,带有一些对象^^
谢谢大家! key变量保存属性的名称(即键),但不保存属性的值
var value = data[key];
console.log(value[0].company_name);
试试这个
function getJobs () {
let httpRequest = new XMLHttpRequest();
httpRequest.open('GET', 'http://codepen.io/jobs.json', true);
httpRequest.onreadystatechange = () => {
if (httpRequest.readyState == 4) {
let data = JSON.parse(httpRequest.responseText);
data.jobs.forEach(function(key, value) {
console.log(key.company_name);
});
}
};
httpRequest.send();
}
每个json对象都可以单独创建。所以hhat确实遇到了一个独立的解决方案。我已经用`Object.keys(data.map((key)=>{console.log(data[key][0]['title']);});`但是使用此解决方案,我无法显示每个作业。此解决方案不会列出“作业”@StéphaneR数组中的所有作业不,您已经循环了对象的属性(它有一个属性“jobs”)。如果要在数组上循环,则必须在数组上循环。因此我需要更改为
Object.keys(data.jobs).forEach
?作为一个数组,您应该使用array.prototype.forEach
。您需要调整如何深入到结果内部。