无法访问Json值

时间:2014-02-02 04:26:29

标签: 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);
}

1 个答案:

答案 0 :(得分:6)

你的json是一个字符串,而不是一个实际的对象。使用data = JSON.parse(data)将其转换为对象然后它将起作用。

data = JSON.parse(data);
console.log(data["name"]);

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