我已经解析了一个合法的 JSON 对象,我正在遍历多维数组,首先根据函数参数找到年份,然后是该年内的月份。
我的 for 循环是嵌套的:
for (year in yearsData) {
//If we've found the correct year...
if (yearsData[year]['@attributes'].name == yearToGet) {
//...walk through that year's child months
for (month in yearsData[year]) {
//This works!
console.log(yearsData[year][month]);
//This also works!
console.log(yearsData[year][month]['@attributes']);
//This does not work! ..but this is what I need!
console.log(yearsData[year][month]['@attributes'].name);
}
}
我可以一直跟踪 Firebug 控制台中的对象(具有有效输出)
console.log(yearsData[year][month]['@attributes']);
但是我在末尾添加类型的那一刻(.name):
yearsData[year][month]['@attributes'] 未定义。
console.log(yearsData[year][month]); 返回有效对象,我可以看到列出的有效@attributes。
我已经多次检查拼写;我已将属性的名称更改为其他名称,以防它与年份的属性发生某种冲突……但我什么也没得到。
我错过了什么简单的事情?
JSON:
{
"year": [
{
"@attributes": {
"name": "2013"
},
"month": {
"@attributes": {
"name": "January"
},
"winner": "None!",
"theme": "Nobody!"
}
}
]
}