Javascript 从json和AJAX返回数据

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

我想从json数据中使用XMLHttpRequest显示所有作业,但无法显示数据。这是我的职责:

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
。您需要调整如何深入到结果内部。