如何从localStorage的JSON对象中获取accessToken的值?
正确获取localStorage中嵌套的accessToken方法
你写的代码存在两个问题:
localStorage.getItem()仅接受一个参数(要读取的键名),你传入的第二个参数'accessToken'完全无效,该方法不会识别这个参数。- localStorage存储的所有值都是字符串类型,你存在
stackoverflow里的JSON对象实际是被序列化成字符串后存入的,直接通过getItem拿到的是字符串,无法直接访问accessToken属性。
正确的操作步骤:
- 通过键名取出对应的字符串值
- 将字符串解析回JS对象
- 访问对象的
accessToken属性
具体代码示例:
// 取出存储的字符串 const stackDataStr = window.localStorage.getItem('stackoverflow'); // 先判断值是否存在,避免解析null报错 if (stackDataStr) { // 转换为JS对象 const stackDataObj = JSON.parse(stackDataStr); // 输出目标accessToken console.log(stackDataObj.accessToken); }
额外补充:如果之前存储数据时没有将JSON对象转为字符串,存入的会是[object Object]这类无效字符串,解析时会报错。这种情况下需要检查存储代码,确保用JSON.stringify()将对象转为字符串后再存储,示例如下:
// 正确的存储方式 const userData = { accessToken: '123', name: 'test' }; window.localStorage.setItem('stackoverflow', JSON.stringify(userData));
内容的提问来源于stack exchange,提问作者minsu123
相关产品推荐
相关产品推荐

