关于localStorage存储json数据

来源:互联网 发布:淘宝付费推广技巧 编辑:程序博客网 时间:2024/05/17 07:57

有时候我们想要将一个JSON对象数据存储到localStorage中,但普通的存储肯定是不行的,因为localStorage只能存储字符串数据。

//test1.htmlvar obj = {"name":"zjp"};localStorage.setItem('obj', obj);//这样在另一个页面中取出obj//test2.htmlvar obj = localStorage.getItem('obj);//输出nameconsole.log(obj.name);
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

上述方法是肯定不行的,我们可以看一下:
当我们setItem的时候,看一下存储进去的值是什么
这里写图片描述
这样的话在另一个页面是肯定获取不到值的啊,不信可以试一下:
这里写图片描述

正确的方法是先把JSON转化成字符串存储进去,当我们取出来的时候再转化成JSON就好了!

//test1.htmlvar obj = {"name":"zjp"};//将json数据转化为字符串var obj_str = JSON.stringify(obj);//存储进localStoragelocalStorage.setItem('obj_str', obj_str);//test2.htmlvar obj_str = localStorage('obj_str');//将字符串转化为json数据var obj = JSON.parse(obj_str);console.log(obj.name);
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13

这时候当我们存储obj_str的时候localStorage中的数据是这样的
这里写图片描述
当我们取出数据的时候就能获取这个json字符串然后转化为对象使用啦!
这里写图片描述