【发布时间】:2017-01-05 12:02:12
【问题描述】:
我有一个如下所示的 json 文件:
{
"results": {
"name1": {
"printouts": {
"property1": [{
"someName": "someText",
"someName2": "someURL",
"someName3": integer,
"someName4": boolean
}
],
"property2": [
"someText"
],
"property3": [
"someText"
],
"property4": [
"someText"
],
"property5": [
"someText"
],
"property6": [
"someText"
]
},
"someName": "someText",
"someName2": "someURL",
"someName3": integer,
"someName4": boolean
},
"name2": {
"printouts": {
"property1": [{
"fulltext": "someText",
"fullurl": "someURL",
"namespace": integer,
"exists": boolean
}
],
"property2": [
"someText"
],
"property3": [
"someText"
],
"property4": [
"someText"
],
"property5": [
"someText"
],
"property6": [
"someText"
]
},
"someName": "someText",
"someName2": "someURL",
"someName3": integer,
"someName4": boolean
},
......
}
我想要的是访问printouts 中每个对象的property6。
到目前为止我做了什么:
for (i in results) {
if (someOtherArray.length < 1) {
someOtherArray.push(i.printouts.property6.toString());
}
但这让我出错:无法读取未定义的属性 property6。我做错了什么?
有什么想法吗?谢谢。
【问题讨论】:
-
可能是i.name.printouts.property6.toString()
-
results 应该是一个数组,而不是一个对象,因为它具有双重名称属性。
-
看起来你在
someText之后还有一个额外的"►"property5": [someText"], -
i将在字符串中保存键名。您必须使用results[i]来获取对象 -
@dnks23,但你有两个
name里面的钥匙。
标签: javascript arrays object properties undefined