如何在JSON数据中引用嵌套数组?
问题描述:
我需要帮助来访问位于我的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);
}
目前这种形式的点符号正在为JSON数组中的其他条目工作... 我期待将所有这些数据作为字符串返回。
答
我不知道挺你在找什么但也许这会指向你正确的方向:
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(", "));
}
答
你的代码没有问题:pingFeed[k].comments
将返回数组,pingFeed[k].comments[0]
将返回该数组的第一条评论。
答
好,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]);
}
}
Tartine是一个伟大的资源taurant,抱歉,我无法抗拒。 – 2010-09-13 23:05:27
我只有他们的蛋糕。 – Sachin 2010-09-13 23:40:28