2015-09-25 51 views
0

我不太確定我的問題在這裏。使用字符串查找JSON時未定義

這是我的JSON:

user = { 
    userdata: { 
     name: "Test" 
    } 
} 

雖然user.userdata.name返回測試, 用戶[ 「userdata.name」]返回undefined。

另外user [「userdata」]也返回userdata json。並且用戶[「userdata」] [「name」]也返回Test。

我在另一個json上使用相同的方法,但沒有深入搜索。只是爲了userdata。並有工程就好...

+1

*「這是我的json」*不,它不是。這是一個分配給變量的JavaScript對象初始值設定項。 JSON是用於數據交換的*文本*符號(並且沒有'='運算符,因爲它不是編程語言)。如果您使用JavaScript源代碼,而不是談論字符串的內容,那不是JSON。 –

+1

'user [「userdata」] [「name」]''怎麼辦? – luoluo

回答

4

而雖然user.userdata.name返回測試,用戶[「userdata.name」]返回未定義。

正確。引號中的位用作整體作爲要查找的屬性名稱。它沒有被解析。由於您的user對象沒有名爲userdata.name(它有userdata,它又有name)的屬性,因此您獲得的值爲undefined

如果要使用括號表示法訪問該名稱,它將爲user["userdata"]["name"](其中的字符串可以是文字字符串,如圖所示,或任何表達式的結果,如變量查找,字符串連接等)。

2

可以這樣訪問。

user["userdata"]["name"]