Javascript:JSON.parse仅在对象存在时

时间:2014-03-05 17:17:46

标签: javascript angularjs

我在使用if语句时遇到了一些麻烦。我想只在找到某个cookie时解析JSON。这就是我所拥有的:

var isCookie = if ($cookieStore.get('user') !== 'undefined') {
        JSON.parse($cookieStore.get('user'))
    } else {
        $cookieStore.get('user')
    };

var accessLevels = currentUser = isCookie || { access_token: '', role: userRoles.public, user_id: '' };

但我收到Uncaught SyntaxError: Unexpected token if错误。

如果用户cookie存在,我该如何解析我的JSON?

2 个答案:

答案 0 :(得分:4)

var cookie = $cookieStore.get('user');
var isCookie = cookie ? JSON.parse(cookie) : cookie;

唯一的问题是,如果没有找到cookie,isCookie将为null。

答案 1 :(得分:0)

您声明if / else的方式不正确。在这种情况下考虑使用三元运算符

var cookieStoreUser = $cookieStore.get('user');
var isCookie = cookieStoreUser ?  JSON.parse(cookieStoreUser) : cookieStoreUser;