2014-02-02 5 views
0

Я пытаюсь получить доступ к объекту 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); 
} 

ответ

5

Ваш json - это строка, а не фактический объект. Поверните его в объект, используя data = JSON.parse(data), тогда он будет работать.

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

Также обратите внимание, что вы можете просто сделать data.name, которые, как правило, считаются немного лучше, если вам нужно что-то, что синтаксис скобки предложение (например, имя свойства с плохим характером или собственностью доступа с переменным).

+0

В чем разница между строкой и объектом? Кроме того, я попробовал data.name, и он не был определен. –

+0

@CraigPatrickLafferty Что вы имеете в виду? Строка - это строка! Вы сначала разобрали json, как я уже сказал? – m59

+0

Ничего, я понял. Думаю, у меня сложилось впечатление, что строка с обозначением скобки была проанализирована как объект из строковых значений. –

Смежные вопросы