2010-09-13 41 views
5

Tôi cần hỗ trợ trong việc truy cập một mảng lồng nhau đặt Tập dữ liệu JSON của tôi. Đây là entry đầu tiên của top-level mảng JSON của tôi:Làm cách nào để tham chiếu một mảng lồng nhau trong dữ liệu JSON của tôi?

{ 
    "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 
    }] 
} 

Tôi muốn biết làm thế nào tôi có thể truy cập vào các ý kiến ​​và tham gia dữ liệu sử dụng các ký hiệu sau:

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

Hiện nay hình thức ký hiệu chấm làm việc cho các mục nhập khác trong mảng JSON ... Tôi đang tìm cách trả về tất cả các dữ liệu này dưới dạng Chuỗi.

+2

Tartine là một res tuyệt vời taurant, xin lỗi tôi không thể cưỡng lại. –

+0

Tôi chỉ có bánh của họ. – Sachin

Trả lời

1

Tôi không chắc chắn khá gì bạn đang tìm kiếm để làm, nhưng có lẽ điều này sẽ chỉ cho bạn đi đúng hướng:

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

Không có gì sai với mã của bạn: pingFeed[k].comments sẽ trả về mảng và pingFeed[k].comments[0] sẽ trả về nhận xét đầu tiên từ mảng đó.

Hãy thử đây
http://jsfiddle.net/U8udd/

1

Vâng, commentsparticipants là mảng, vì vậy bạn có thể truy cập chúng như mảng bình thường, ví dụ:

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]); 
    } 
} 
Các vấn đề liên quan