2016-09-29 2 views
-3

Я хотел бы отобразить все задания с XMLHttpRequest из json-данных, но я не могу отображать свои данные. Это моя функция:Возвращаемые данные от json и AJAX

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(); 

Можете ли вы помочь мне о моем forEach? Json - объект массива, с некоторым объектом ^^

Спасибо!

+0

Каждый JSON можно создать individuelly. Таким образом, hhat действительно сталкивается с индивидуальным решением. – reporter

+0

Я тестировал с помощью 'Object.keys (data) .map ((key) => { console.log (data [key] [0] ['title']); }) ;, но с этим решением , я не могу отобразить каждое задание –

ответ

0

Попробуйте этот объект

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(); 
} 
1

Переменная key держит имя свойства (то есть ключ), он не имеет значение свойства.

var value = data[key]; 
console.log(value[0].company_name); 
+0

Привет, это решение не перечисляет все задания в заданиях массива –

+1

@ StéphaneR. - Ну нет. Вы зацикливаете свойства объекта (у него есть одно свойство «jobs»). Если вы хотите пересечь массив, тогда вам придется перебирать массив. – Quentin

+0

Так что мне нужно изменить на 'Object.keys (data.jobs) .forEach'? –

Смежные вопросы