Вывод данных из многомерного массива JSON
Подскажите, как вывести данные из такого массива в JS? Его я получаю как JSON после AJAX запроса.
Вот что отображается в консоли, когда приходят данные:
{main: Array(1), tags: Array(3), time: Array(0), invites: Array(5)}
invites: Array(5)
0: {id: "1", usesMail: "[email protected]", userFirst: "Name", userLast: "Last", userNik: "user", …}
1: {id: "2", usesMail: "[email protected]", userFirst: "Name 1", userLast: "Last", userNik: "user", …}
2: {id: "5", usesMail: "[email protected]", userFirst: "Name 2", userLast: "Last", userNik: "user", …}
3: {id: "6", usesMail: "[email protected]", userFirst: "Name 3", userLast: "Last", userNik: "user", …}
4: {id: "7", usesMail: "[email protected]", userFirst: "Name 4", userLast: "Last", userNik: "user", …}
main: Array(1)
0: {id: "16", userCreator: "[email protected]", taskHash: "7e7b36", taskTitle: "testing new", taskCom: "test comment", …}
tags: Array(3)
0: {id: "11", taskHash: "7e7b36", taskId: "empty", tagName: "#personal"}
1: {id: "12", taskHash: "7e7b36", taskId: "empty", tagName: "#wtf"}
2: {id: "13", taskHash: "7e7b36", taskId: "empty", tagName: "#love"}
time: Array(0)
Не могу понять как сформировать цикл, чтобы получить каждое значение. Пробую через for, но чувствую, что не то.
for (var x in obj) {}
Ответы (2 шт):
Автор решения: Vlad Zaev
→ Ссылка
В общем у меня получилось вывести нужные результаты с таким кодом. Буду рад, если сможете помочь оптимизировать его, я не очень силен в js.
Я вывел каждый массив отдельно, а затем разобрал его на значения.
var mainInfo = data.main;
for (var i = 0; i < mainInfo.length; i++) {
var mainList = mainInfo[i];
for (property in mainList) {
//var value = mainList[property];
console.log(mainList['taskHash']);
}
}
var timeInfo = data.time;
for (var i = 0; i < timeInfo.length; i++) {
var timeList = timeInfo[i];
for (property in timeList) {
//var value = mainList[property];
console.log(timeList['setTime']);
}
}
var tagInfo = data.tags;
for (var i = 0; i < tagInfo.length; i++) {
var tagList = tagInfo[i];
for (property in tagList) {
//var value = mainList[property];
console.log(tagList['tagName']);
}
}
var invInfo = data.invites;
for (var i = 0; i < invInfo.length; i++) {
var invList = invInfo[i];
for (property in invList) {
//var value = mainList[property];
console.log(invList['userFirst']+" "+invList['userLast']);
}
}
Автор решения: Sergei Kirjanov
→ Ссылка
data.main.forEach(mainList=>console.log(mainList.taskHash))
...