美文网首页
使用localStorage存储JSON对象的问题

使用localStorage存储JSON对象的问题

作者: 郭先生_515 | 来源:发表于2019-02-27 13:31 被阅读0次
  1. 对于不是 json 对象的数据存储:
var arr=[1,2,3];
localStorage.setItem("tmp",arr);                     //会返回1,2,3
console.log(typeof localStorage.getItem("tmp"));     //string
console.log(localStorage.getItem("tmp"));            //1,2,3

localStorage.setItem() 可以将其直接转化为字符串进行存储。

  1. 而 localStorage.setItem() 不会自动将 json 对象转成字符串形式
var user= {"username": "Guofq","phone": 18518517430};
console.log(typeof localStorage.getItem("user"));   //也会返回String
localStorage.setItem("user", user);                 //但是返回[object Object]

用localStorage.setItem()正确存储JSON对象方法是:
存储前,先用JSON.stringify()方法将json对象转换成字符串形式;
JSON.stringify() 方法可以将任意的 JavaScript 值序列化成 JSON 字符串。

var user= {"username": "Guofq","phone": 18518517430};
user = JSON.stringify(user);                       //转化为JSON字符串
localStorage.setItem("user", user);                //返回 {"username": "Guofq","phone": 18518517430}

后续要操作该JSON对象,要将之前存储的JSON字符串先转成JSON对象再进行操作。

username=JSON.parse(localStorage.getItem("user")).username;
phone=JSON.parse(localStorage.getItem("user")).phone;

相关文章

网友评论

      本文标题:使用localStorage存储JSON对象的问题

      本文链接:https://www.haomeiwen.com/subject/hroxuqtx.html