以特定方式循环动态JSON

时间:2013-06-02 14:06:06

标签: javascript json loops dynamic

我目前有这个JSON文件

{   
"name": "Connor Atherton",
"course": "Combined Sciences",

"modules" : {

    "MATH210": 
    {
        "weekly": 65,
        "weekly2": 76,
        "exam": 80
    },

    "MATH215": {
        "weekly": 65,
        "exam": 80
    },

    "MATH220": {
        "weekly": 65,
        "exam": 80
    },

    "MATH225": {
        "weekly": 65,
        "weekly2": 98,
        "exam": 80
    },

    "SCC210": {
        "weekly": 65,
        "exam": 80
    },

    "SCC204": {
        "weekly": 65,
        "exam": 80
    }

}

}

正如您在每个模块中看到的那样,可能会有不同数量的属性将被动态检索。

我目前正在循环遍历每个模块

$.each(json.modules, function(i, item) {
    console.log(i + " " + item.exam);
});

然而,这不适用于所有模块,因为它们都可以具有不同数量的属性。

我一直试图用for循环遍历每个模块的属性,但我无法让它工作。我想我应该用

item.length
循环中的某个地方,但我不确定。

如果每个模块具有不同数量的属性,您是否知道如何循环每个模块?

由于

1 个答案:

答案 0 :(得分:3)

如果我理解正确的话:

$.each(json.modules, function(i, item) {
    for (var key in item){
        // output, to example: "exam = 80"
        console.log(key + ' = ' + item[key]);
    }
});