无法解析localstorage angular 2

时间:2018-04-13 14:30:10

标签: angular local-storage

我正在尝试在console.log中添加一个我已添加到localstorage的令牌。这是代码:

  ngOnInit(){
    console.log('Member Info: ', JSON.parse(localStorage.getItem('LOCAL_TOKEN_KEY')));
  }

这看起来对我来说,但是当我运行它时,我收到以下错误。

Error: Uncaught (in promise): SyntaxError: Unexpected token o in JSON at position 1
SyntaxError: Unexpected token o in JSON at position 1

有人认为这有什么问题吗?

3 个答案:

答案 0 :(得分:2)

我相信这是因为您的数据已经是一个对象,无需再次解析。

只需尝试:

console.log('Member Info: ', localStorage.getItem('LOCAL_TOKEN_KEY'));
  

未捕获的SyntaxError:位置1的JSON中的意外标记o

当您尝试将已经是JSON对象的元素解析为JSON Object时,是典型的JavaScript错误。

<强>更新

在保存到LocalStorage时似乎有问题,所以这里有一个问题!

   // To save to LocalStorage
   localStorage.setItem('LOCAL_TOKEN_KEY', JSON.stringify({
      testData: 123
    }));

   // To read from LocalStorage
   console.log(JSON.parse(localStorage.getItem('LOCAL_TOKEN_KEY')));

清理LocalStorage:

在浏览器中按下F12(对于Chrome),转到“应用程序”选项卡,打开“LocalStorage”选项卡,然后选择您的应用程序名称。你会在那里找到你的LocalStorage,将其删除。

答案 1 :(得分:1)

在存储到本地存储之前对令牌进行字符串化。

localStorage.setItem('LOCAL_TOKEN_KEY', JSON.stringify({'aa': 'bb'}));
let token = localStorage.getItem('LOCAL_TOKEN_KEY');
JSON.parse(token);

答案 2 :(得分:0)

您还可以尝试将JSON对象转换为字符串:

console.log('Member Info: ', JSON.stringify(localStorage.getItem('LOCAL_TOKEN_KEY')));