sessionStorage、localStorage、cookieStorage存储对象显示为[object object]

956 阅读1分钟

当你定义一个对象,比如 user: { name: ' John ' } ,使用sessionStorage等浏览器存储域的时候,sessionStorage.setItem('user',user),你获取此值并且打印输出的时候console.log(sessionStorage.getItem('user'))会发现打印的结果为[object object]

原因

使用sessionStorage存储域的时候,因为user类型是一个对象,如果你不将对象转换成字符串的时候,浏览器则自动将对象强转为字符串。但是浏览器强转字符串的时候,并不具备将对象的键和值转换成字符串,所以只是单纯地将对象转换成【object object】

解决办法

在存储对象的之前,先将对象转换成json字符串,然后再存储

sessionStorage.setItem('user',JSON.stringify(user))

使用时则需要取出来,然后将json字符串转换成json对象

JSON.parse(sessionStorage.getItem('user'))