我正在尝试访问传递给loggedIn
函数的json对象。
{"name":"craig lafferty","ID":"1"}
输出到控制台,但console.log(data["name"]);
的结果未定义。我在这里缺少什么?
function loggedIn(data)
{
console.log(data);
console.log(data["name"]);
$("#usernameDisplay").css({"z-index":"5"});
$("#searchResultsContainer").css({"z-index":"3"});
$("#usernameDisplay").text(data["name"]);
$("#loginAddUserBack,#loginFacebook,#loginGoogle").animate({opacity: "0"}).delay(2, function(){$(this).css({"display": "none","z-index":"0"});});
$("#menuIndic").css({"opacity":"0.3","z-index":"5"});
$("#intro").animate({opacity: "0"}).delay(2, function(){$(this).css("display", "none");});
$("#mainNotificationTable,#searchResultsContainer,#searchMainContainer").css("visibility", "visible");
$("#searchTypes").css({"visibility": "visible", "z-index":"5"});
id = data["ID"];
//getUserInfo(username);
}
答案 0 :(得分:6)
你的json是一个字符串,而不是一个实际的对象。使用data = JSON.parse(data)
将其转换为对象然后它将起作用。
data = JSON.parse(data);
console.log(data["name"]);
另请注意,您可以执行data.name
,除非您需要支持语法提供的内容(例如带有错误字符的属性名称或带变量的访问属性),否则通常会认为它更好一点。