使用JavaScript遍历JSON对象

4
在这个例子中,我想提取1)员工编号和2)他/她的所有任务。2)可以工作,但1)给我一个对象而不是数字...
我是否必须将员工编号设置为键/值对才能提取值?
var s = {
    "schedule": {
        "employees": {
            "1000": {
                "tasks": [
                    {
                        "task": "task1",
                        "site": "site1",
                        "from": "0900",
                        "to": "1000"
                    },
                    {
                        "task": "task2",
                        "site": "site2",
                        "from": "0900",
                        "to": "1000"
                    }
                ]
            },
            "2000": {
                "tasks": [
                    {
                        "task": "task3",
                        "site": "site3",
                        "from": "0900",
                        "to": "1000"
                    },
                    {
                        "task": "task4",
                        "site": "site4",
                        "from": "0900",
                        "to": "1000"
                    }
                ]
            }
        }
    }
}

for (var i in s["schedule"]["employees"]) {
    // this gives me the object, I would like the employee number (eg:1000)
    console.log(s["schedule"]["employees"][i]);

    // this gives me the task number 
    for (var j in s["schedule"]["employees"][i].tasks) {
        console.log(s["schedule"]["employees"][i].tasks[j].task);       
    }
}

我不知道为什么我很难理解这个。我是唯一一个遇到这种情况的人吗?


@ChristopherW 我会把我的钱压在“这个问题没有展示任何研究努力”的一面。 - Dagg Nabbit
2
Dagg - 如果薪水是10美元,那我每小时的收入不到3美元。也许在回答了15000个问题之后,这个问题会变得很明显。这是一个学习的地方还是提出完美问题的地方? - Abe
2个回答

2

只需使用i查看密钥。

console.log(i);

2
for (u in s.schedule.employees) {
    console.log(u);
    for (v in s.schedule.employees[u]) {
        for (var i =0; i < s.schedule.employees[u]['tasks'].length; ++i)
            for (var j in s.schedule.employees[u]['tasks'][i])
                console.log(j);
                console.log(s.schedule.employees[u]['tasks'][i][j]);
    }
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接