本地存储json对象问题

来源:互联网 发布:日月凌空电视剧乔之知 编辑:程序博客网 时间:2024/05/21 06:22

  • 原生JSON对象,将对象转为字符串
    [javascript] view plain copy
    1. var jsObj = {};  
    2. jsObj.testArray = [1,2,3,4,5];  
    3. jsObj.name = 'CSS3';  
    4. jsObj.date = '8 May, 2011';  
    5. var str = JSON.stringify(jsObj);  
    6. alert(str);  

    从JSON字符串转为对象
    [javascript] view plain copy
    1. var jsObj = {};  
    2. jsObj.testArray = [1,2,3,4,5];  
    3. jsObj.name = 'CSS3';  
    4. jsObj.date = '8 May, 2011';  
    5. var str = JSON.stringify(jsObj);  
    6. var str1 = JSON.parse(str);  
    7. alert(str1); 





  • localStorage - 没有时间限制的数据存储 
1 var arr=[1,2,3];2 localStorage.setItem("temp",arr); //会返回1,2,33 console.log(typeof localStorage.getItem("temp"));//string4 console.log(localStorage.getItem("temp"));//1,2,3
  • localStorage.setItem() 不会自动将Json对象转成字符串形式
1 var obj = {"a": 1,"b": 2};2 typeof localStorage.getItem("temp2");//也会返回String3 localStorage.setItem("temp2", obj);//但是返回[object Object]
  • 用localStorage.setItem()正确存储JSON对象方法是:
  • 存储前先用JSON.stringify()方法将json对象转换成字符串形式
  • JSON.stringify() 方法可以将任意的 JavaScript 值序列化成 JSON 字符串
1 var obj = {"a": 1,"b": 2};2 obj = JSON.stringify(obj); //转化为JSON字符串3 localStorage.setItem("temp2", obj);//返回{"a":1,"b":2}
  • 后续要操作该JSON对象,要将之前存储的JSON字符串先转成JSON对象再进行操作
1 obj=JSON.parse(localStorage.getItem("temp2"));
原创粉丝点击