无法访问Json值

Cra*_*rty 0 javascript json

我试图访问传递给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);
}
Run Code Online (Sandbox Code Playgroud)

m59*_*m59 7

你的json是一个字符串,而不是一个实际的对象.使用它将它变成一个对象data = JSON.parse(data)它会工作.

data = JSON.parse(data);
console.log(data["name"]);
Run Code Online (Sandbox Code Playgroud)

另请注意,data.name除非您需要支持语法提供的内容(例如带有错误字符的属性名称或带变量的访问属性),否则您可以执行通常被认为更好的操作.