【问题标题】:How do I reference a nested array within my JSON data?如何在我的 JSON 数据中引用嵌套数组?
【发布时间】:2011-04-11 22:11:43
【问题描述】:

我在访问位于我的 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
    }]
}

我想知道如何使用以下符号访问 cmets 和参与者数据:

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

目前,这种形式的点表示法适用于 JSON 数组中的其他条目... 我希望将所有这些数据作为字符串返回。

【问题讨论】:

  • Tartine 是一家很棒的餐厅,抱歉我无法抗拒。

标签: javascript arrays json


【解决方案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(", "));
}

【讨论】:

    【解决方案2】:

    嗯,commentsparticipants 是数组,所以你可以像普通数组一样访问它们,例如:

    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]);
        }
    }
    

    【讨论】:

      【解决方案3】:

      您的代码没有问题:pingFeed[k].comments 将返回数组,pingFeed[k].comments[0] 将返回该数组中的第一条评论。

      在这里试试
      http://jsfiddle.net/U8udd/

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2022-12-06
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-09-16
        • 1970-01-01
        相关资源
        最近更新 更多