【问题标题】:How to loop inside a json file with javascript?如何使用 javascript 在 json 文件中循环?
【发布时间】:2013-06-17 16:11:37
【问题描述】:

我的 javascript 代码返回了一个 json 文件。该文件如下所示:

{
    "data": [
        {
            "id": "594984240522886",
            "from": {
                "id": "593959083958735",
                "category": "Community",
                "name": "Decoc"
            },
            "name": "Ducks",
            "description": "ducks",
            "link": "http://www.facebook.com/album.php?fbid=594984240522886&id=593959083958735&aid=1073741834",
            "cover_photo": "594984260522884",
            "count": 4,
            "type": "normal",
            "created_time": "2013-06-13T15:12:22+0000",
            "updated_time": "2013-06-13T15:12:40+0000",
            "can_upload": false
        },
        {
            "id": "593963787291598",
            "from": {
                "id": "593959083958735",
                "category": "Community",
                "name": "Decoc"
            },
            "name": "Profile Pictures",
            "link": "http://www.facebook.com/album.php?fbid=593963787291598&id=593959083958735&aid=1073741832",
            "cover_photo": "593963797291597",
            "count": 1,
            "type": "profile",
            "created_time": "2013-06-11T16:52:29+0000",
            "updated_time": "2013-06-11T16:52:31+0000",
            "can_upload": false
        },
        {
            "id": "593963467291630",
            "from": {
                "id": "593959083958735",
                "category": "Community",
                "name": "Decoc"
            },
            "name": "Goats",
            "description": "goats",
            "link": "http://www.facebook.com/album.php?fbid=593963467291630&id=593959083958735&aid=1073741831",
            "cover_photo": "593963477291629",
            "count": 7,
            "type": "normal",
            "created_time": "2013-06-11T16:51:56+0000",
            "updated_time": "2013-06-11T16:52:02+0000",
            "can_upload": false
        },
        {
            "id": "593962700625040",
            "from": {
                "id": "593959083958735",
                "category": "Community",
                "name": "Decoc"
            },
            "name": "Dogs",
            "description": "dogs",
            "link": "http://www.facebook.com/album.php?fbid=593962700625040&id=593959083958735&aid=1073741830",
            "cover_photo": "593962710625039",
            "count": 10,
            "type": "normal",
            "created_time": "2013-06-11T16:50:27+0000",
            "updated_time": "2013-06-11T16:50:37+0000",
            "can_upload": false
        },
        {
            "id": "593961937291783",
            "from": {
                "id": "593959083958735",
                "category": "Community",
                "name": "Decoc"
            },
            "name": "Cows",
            "description": "Cows",
            "link": "http://www.facebook.com/album.php?fbid=593961937291783&id=593959083958735&aid=1073741829",
            "cover_photo": "593961983958445",
            "count": 5,
            "type": "normal",
            "created_time": "2013-06-11T16:48:26+0000",
            "updated_time": "2013-06-11T16:49:32+0000",
            "can_upload": false
        }
    ],
    "paging": {
        "cursors": {
            "after": "NTkzOTYxOTM3MjkxNzgz",
            "before": "NTk0OTg0MjQwNTIyODg2"
        }
    }
}

我想在“数据”内部循环并查看存在多少不同的数据元素(正如您看到的每个元素都有一个 id 、 from 、 name 、 description ..)。我怎么能用 javascript 做到这一点?

【问题讨论】:

  • 查看“data”数组的length属性。
  • 主要的 json 对象名称是什么?您可以使用 for loop this 进行循环: for(i=0; i
  • 非常感谢 mikez302。那确实是我需要的。我正在考虑制作 foreach 循环,但这个循环要干净 100 倍。
  • 也感谢 Ani,这是从每个“数据”成员获取特定元素的下一步。

标签: javascript json loops


【解决方案1】:

你可以试试下面的代码:

for(i=0;json.data.length;i++){
    var element = json.data[i];
}

或者以其他方式:

for (i in json.data) {
    if (json.data.hasOwnProperty(i)) {
        var element = json.data[i];
    }
}

【讨论】:

  • 为什么是 if (json.data.hasOwnProperty(i)) ?您的for 语句已经在i 变量中分配了正确的值,因此您不必执行检查,它总是正确的。
  • for ... in 与数组一起使用通常是一种不好的做法。无法保证您将按数组顺序获取元素。不过Array.forEach 会是个不错的选择。
  • @DaFunix - hasOwnProperty 用于过滤掉任何被猴子修补到Array.prototype 中的东西。例如,如果有一个 shim 可以添加 forEachindexOf 方法。
猜你喜欢
  • 1970-01-01
  • 2014-05-19
  • 2021-02-23
  • 1970-01-01
  • 1970-01-01
  • 2021-09-24
  • 2020-05-18
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多