- 对于不是 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() 可以将其直接转化为字符串进行存储。
- 而 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;
网友评论