Доступ к объектам в массиве JSON (JavaScript)
Возможный дубликат:
У меня есть вложенная структура данных /JSON, как я могу получить доступ к определенному значению?
У меня есть служба, которая возвращает вложенные объекты в массив JSON. Как я могу прокручивать объекты и печатать нужные данные?
Это мой результат:
[
{
"item1": {
"sourceUuid": "5599ffac-4b99-47c7-9370-a25e7e465429",
"targetUuid": "5599ffac-4b99-47c7-9370-a25e7effffff"
}
},
{
"item2": {
"sourceUuid": "bf63fe50-8b2b-488d-b565-009fcaebdb45",
"targetUuid": "-1"
}
},
{
"item3": {
"sourceUuid": "0005fd96-f654-4781-8602-09fedc0cdd35",
"targetUuid": "0005fd96-f654-4781-8602-09fedc0cdd35"
}
}
]
Это то, что я хочу напечатать для каждого элемента (item1, item2, item3,...):
Item Name: item1
Source: 5599ffac-4b99-47c7-9370-a25e7e465429
Target: 5599ffac-4b99-47c7-9370-a25e7effffff
До сих пор я пытался:
for (var i = 0, length = data.length; i < length; i++) {
for (obj in data[i]) {
console.log(obj);
}
}
Это возвращает только "item1", "item2" и т.д. Но я не знаю, как получить доступ к источнику данных и т.д. отсюда
Ответы
Ответ 1
Вы можете закодировать массив с помощью для цикла и свойств объекта с помощью циклов for-in.
for (var i=0; i<result.length; i++)
for (var name in result[i]) {
console.log("Item name: "+name);
console.log("Source: "+result[i][name].sourceUuid);
console.log("Target: "+result[i][name].targetUuid);
}
Ответ 2
Используйте цикл
for(var i = 0; i < obj.length; ++i){
//do something with obj[i]
for(var ind in obj[i]) {
console.log(ind);
for(var vals in obj[i][ind]){
console.log(vals, obj[i][ind][vals]);
}
}
}
Демо: http://jsfiddle.net/maniator/pngmL/