我目前正在开发一个 REST API/网站项目,其中我的 REST API 必须通过响应从服务器返回对象数组,并使用 GSON 从数据中生成 Json 数组。然而,当尝试从网站的 javascript 数组中获取值时,我总是遇到未定义的情况。这是数组:
var userArr =[
{
"0x1": {
"firstName": "Test1",
"lastName": "Test1",
"hobbies": [
{
"id": 1,
"name": "Fodbold",
"people": [
"0x1"
]
}
],
"id": 1,
"address": {
"id": 1,
"street": "Street1",
"cityInfo": {
"id": 1,
"zipCode": "0555",
"city": "Scanning"
},
"infoList": [
"0x1",
"0x2"
]
},
"phones": [
{
"id": 1,
"number": "123124",
"info": "0x1"
}
]
}
];
当我尝试调用 userArr[0].firstName 时,收到一条错误消息,指出它未定义,即使数据在那里。这是来自 get 调用,这是我在 REST API 的 javascript 中执行的,它会发回这个特定的数组。我尝试循环遍历数组,其中包含多个对象,但是我根本无法检索任何信息。
最佳答案
您的userArr
是一个没有firstName
属性的对象数组。由于某种原因,它们只有一个名为 0x1
的属性。并且此 0x1
属性具有 firstName
属性。
您可以使用以下表示法访问 0x1
属性的 firstName
:
userArr[0]["0x1"].firstName
这是工作演示:
var userArr = [{
"0x1": {
"firstName": "Test1",
"lastName": "Test1",
"hobbies": [{
"id": 1,
"name": "Fodbold",
"people": [
"0x1"
]
}],
"id": 1,
"address": {
"id": 1,
"street": "Street1",
"cityInfo": {
"id": 1,
"zipCode": "0555",
"city": "Scanning"
},
"infoList": [
"0x1",
"0x2"
]
},
"phones": [{
"id": 1,
"number": "123124",
"info": "0x1"
}]
}
}];
console.log(userArr[0]["0x1"].firstName);
顺便说一下,您的代码中数组末尾缺少一个右括号 }。
关于JavaScript 数组值未定义?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42824846/