访问JSON数组中的元素

时间:2017-03-09 16:08:39

标签: javascript arrays json api

我在Javascript中创建一个API来获取一些细节。

致电以下人员:APICall.Employee.getAll();
返回:

[{
    "id": 123456,
    "first_name": "Joe ",
    "last_name": "Soap",
    "email": "",
    "image_url": "http",
    "updated_on": "2017-03-06 12:09:47"
}, {
    "id": 000123,
    "first_name": "Mary",
    "last_name": "Soap",
    "email": "",
    "image_url": "http",
    "updated_on": "2017-03-07 06:31:25"
}]

我正在尝试访问每个员工ID。当我测试调用时,我收到错误:“ ReferenceError:未定义员工

var json = APICall.Employee.getAll();
print("Employees: " + json); // Returns [object Array]...[object Array]
for (i = 0; i < json.length; i++) {
    print("ID: " + employees.id); // ReferenceError: employees is not defined
}

我在这里做错了什么?如何访问员工ID?

3 个答案:

答案 0 :(得分:2)

首先,你要使用json的长度,而json的长度并不存在。其次,你永远不会使用索引i。这是一个固定版本。

var json = APICall.Employee.getAll();
print("Employees: " + json); // Returns [object Array]...[object Array]
for (i = 0; i < json.employees.length; i++) {
    print("ID: " + json.employees[i].id); // ReferenceError: employees is not defined
}

您会注意到我现在正在查找employees数组的长度。我还通过执行json.employees [i]

来索引循环内的数组

更新:使用新代码:

var json = APICall.Employee.getAll();
for (i = 0; i < json.length; i++) {
    print("ID: " + json[i].id);
}

答案 1 :(得分:2)

var json = APICall.Employee.getAll();
print("Employees: " + json); // Returns [object Array]...[object Array]
for (i = 0; i < json.employees.length; i++) {
    print("ID: " + json.employees[i].id); // ReferenceError: employees is not defined
}

答案 2 :(得分:1)

您没有引用JSON密钥&#34;员工&#34;并且for循环没有做任何事情。

您需要这样做:

var employees = json.employees;

然后迭代该对象:

for (var i = 0; i < employees.length; i++) {
    print("ID: " + employees[i].id);
};

希望有所帮助。