永发信息网

前端使用localstorage为什么再用json.parse转换

答案:2  悬赏:60  手机版
解决时间 2021-01-23 07:12
  • 提问者网友:雾里闻花香
  • 2021-01-22 18:03
前端使用localstorage为什么再用json.parse转换
最佳答案
  • 五星知识达人网友:上分大魔王
  • 2021-01-22 18:30
有时候,我们需要将数据存储到sessionStorage和localStorage中,这样做的好处有:
1 缓存数据
2 减少对内存的占用
但是,storage只能存储字符串的数据,对于JS中常用的数组或对象却不能直接存储。
var obj = { name:'Jim' };
sessionStorage.obj = obj;
localStorage.obj = obj;

var arr = [1,2,3];
sessionStorage.obj = arr;
localStorage.obj = arr;上面的写法都是不能成功的!但我们可以通过JSON对象提供的parse和stringify将其他数据类型转化成字符串,再存储到storage中就可以了。请看下面的代码。
var obj = { name:'Jim' };
var str = JSON.stringify(obj);

//存入 sessionStorage.obj = str;
//读取 str = sessionStorage.obj;
//重新转换为对象 obj = JSON.parse(str);谢谢采纳!!! 还有不理解的可以继续问这方面我很行
全部回答
  • 1楼网友:枭雄戏美人
  • 2021-01-22 20:09
【json.parse方法】在前端编程语言 (如:javascript) 和 后端编程语言(如:java)中都会经常遇到,用法基本一样,都是将《字符串》转成《对象》,具体如下: 1.javascript中: var str1 = '{ "name": "cxh", "sex": "man" }';//json字符串 var str2 = { "name": "cxh", "sex": "man" };//json对象 var obj = json.parse(str1); //由json字符串转换为json对象 alert(obj.name); var last = json.stringify(str2);;//将json对象转化为json字符(这个也经常用到,所有就贴出来了) alert(last); 2.java中(以alibaba.fastjson为例): //1.json字符串的格式为 key<-->基本类型数据 string jsonstr1 = "{\"id\":1,\"name\":\"张三\",\"age\":20}"; map obj1 = (map) json.parse(jsonstr1); system.out.println(obj1+"第一个的age="+obj1.get("age")); //2.json字符串的格式为 key<-->对象类型数据 string jsonstr2 = "{\"1\":{\"id\":1,\"name\":\"张三\",\"age\":20}," + "\"2\":{\"id\":2,\"name\":\"李四\",\"age\":50}}"; map obj2 = (map) json.parse(jsonstr2); system.out.println(obj2+"第一个的age="+obj2.get("1").get("age")); //3.json字符串的格式为 key<-->不规则数据 string jsonstr3 = "{\"1\":{\"id\":1,\"name\":\"张三\",\"age\":20}," + "\"2\":{\"id\":2,\"name\":\"李四\",\"age\":50},\"total_age\":70}"; map obj3 = (map) json.parse(jsonstr3); system.out.println(obj3+"第一个的age="+obj3.get("1").get("age")); system.out.println("total_age="+obj3.get("total_age"));
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯