我用jquery加载了一个json文件,然后尝试访问某些属性,但出现未定义的错误。当我打印json对象时,可以清楚地看到其中的对象。
Long
这是我的JSON简化版的样子。我的代码中尝试访问属性的部分看起来像这样。
{
"Calculus 1": {
"LEC": {
"sections": [
"LEC01",
"LEC02"
],
"days": [
[
"MO",
"WE"
],
[
"MO",
"TH"
]
],
"start": [
[
"12:00",
"11:00"
],
[
"13:00",
"13:00"
]
],
"end": [
[
"13:00",
"13:00"
],
[
"14:00",
"15:00"
]
]
},
"TUT": {
"sections": [],
"days": [],
"start": [],
"end": []
},
"PRA": {
"sections": [],
"days": [],
"start": [],
"end": []
}
}
}
这是我加载JSON的方式。上面的代码在some函数中。当我在传递函数后在函数内打印信息时,这正是我在JSON中所拥有的。
if(info[courses[i]]['TUT']['sections'].length == 0){
tut = -1;
}
我得到的错误是“无法读取未定义的属性'TUT'”。信息只是我从JSON加载的对象的变量。当我将变量打印到控制台时,我确切地知道它应该是什么样子。如果我只是做“ info [courses [i]] =一些属性”,我不会得到一个错误。 'info [courses [i]]。length == 0'也会提示无法读取的属性'length'错误。我不确定这是否是语法问题,但似乎无法弄清楚这是怎么回事。
答案 0 :(得分:0)
抛出错误是因为info[courses[i]]
是undefined
。检查返回的内容为courses[i]
。 courses[i]
应该返回Calculus 1