我從Web服務返回json字符串,我可以很容易地訪問它,但有時它表現奇怪,我找不到原因。 下面是我通過Web服務在JavaScript中訪問json數據奇怪的錯誤
{"current":"2014-10-07T17:53:03+02:00","T1":{"0":[null],"1":[null],"2":[null],"3":[null],"4":[null],"5":[null],"6":[{"name":"ABC","value":63}]},"T2":{"0":[null],"1":[null],"2":[null],"3":[null],"4":[null],"5":[null]},"T3":{"0":[null],"1":[null],"2":[null],"3":[null],"4":[null],"5":[null]},"T4":{"0":[null],"1":[null],"2":[null],"3":[null],"4":[null],"5":[null]},"T5":{"0":[null],"1":[null],"2":[null],"3":[null],"4":[null],"5":[null]}}
讓我可以方便地訪問他們,這是工作,除了當有任何T1,T2,T3的第0個位置...等空細JSON字符串。它返回該錯誤TypeError: Cannot read property '0' of undefined
這是我如何訪問數據
if(json.T1 != undefined) {
for (var i = 0; i < len; i++) {
if(json.T1[i][0] == null) {
t1.push(NaN)
}
else
{
t1.push(json.T1[i][0]["value"])
}
}
}
我不明白爲什麼這個工程在所有情況下excpet有T1,T2的第0個位置的空...等
錯誤意味着你正試圖訪問一個不存在的屬性,即'json.T1 [i]'返回'undefined'。 len的價值是什麼?如果它大於6,那麼這就是爲什麼你會得到這個錯誤。 'json.T1 [7]'在你的例子中不存在。 – 2014-10-07 16:10:16
爲什麼不在這裏測試'undefined'? 'json.T1 [i]' – melancia 2014-10-07 16:17:35