2010-09-13 11 views
5

Мне нужна помощь в доступе к вложенному массиву, расположенному в моем наборе данных JSON. Вот первая запись моего верхнего уровня JSON массива:Как ссылаться на вложенный массив в мои данные JSON?

{ 
    "pingFeed": [{ 
     "header": "Get Drinks?", 
     "picture": "images/joe.jpg", 
     "location": "Tartine's, SF", 
     "time": "Tomorrow Night", 
     "name": "Joe Shmoe", 
     "pid": 
     "123441121", 
     "description": "Let's drop some bills, yal!", 
     "comments": [{ 
      "author": "Joe S.", 
      "text": "I'm Thirsty" 
     }, 
     { 
      "author": "Adder K.", 
      "text": 
      "Uber Narfle" 
     }, 
     { 
      "author": "Sargon G.", 
      "text": "taeber" 
     }, 
     { 
      "author": "Randy T.", 
      "text": "Powdered Sugar" 
     }, 
     { 
      "author": "Salvatore D.", 
      "text": 
      "Chocolate with Sprinkles" 
     }, 
     { 
      "author": "Jeff T.", 
      "type": "Chocolate" 
     }, 
     { 
      "author": "Chris M.", 
      "text": "Maple" 
     }], 
     "joined": false, 
     "participants": [ 
     "Salvatore G.", "Adder K.", "Boutros G."], 
     "lat": 37.25, 
     "long": 122, 
     "private": true 
    }] 
} 

Я хотел бы знать, как я могу получить доступ к комментариям и участникам данных с использованием следующих обозначений:

for (var k = 0; k < pingFeed.length ; k++) { 
    console.log(pingFeed[k].comments); 
    console.log(pingFeed[k].participants); 
} 

В настоящее время этой формы dot notation работает для других записей в массиве JSON ... Я ищу, чтобы вернуть все эти данные в виде строк.

+2

Тартин - отличный вариант taurant, извините, я не мог сопротивляться. –

+0

У меня только были торты. – Sachin

ответ

1

Я не уверен совсем то, что вы ищете но, возможно, это укажет вам в правильном направлении:

for (var k = 0; k < pingFeed.length; k++) { 
    for (var i = 0; i < pingFeed[k].comments.length; i++) { 
     var oComments = pingFeed[k].comments[i]; 
     console.log(oComments.author + ": " + oComments.text); 
    } 
    console.log(pingFeed[k].participants.join(", ")); 
} 
0

В коде нет ничего плохого: pingFeed[k].comments вернет массив и pingFeed[k].comments[0] вернет первый комментарий из этого массива.

Попробуйте здесь
http://jsfiddle.net/U8udd/

1

Ну, comments и participants массивы, так что вы можете получить доступ к ним, как и обычные массивы, например:

for (var k = 0; k < pingFeed.length ; k++) { 
    var comments = pingFeed[k].comments; 
    for(var i = 0, length = comments.length; i < length; ++i) { 
     console.log(comments[i]); 
    } 
} 
Смежные вопросы