由于localStorage、sessionStorage中只能存储字符串,所以存储对象数组,必须先转成字符串再存储
存储数组
JSON.stringify可以将对象转换为 JSON 字符串
JSON.parse可以将 JSON 字符串转换为对象
那我们存的时候先将数组转成JSON字符串,取出来再转成数组就可以了,实现如下。
function storageObj(obj) {
var checkedIdStr = JSON.stringify(obj);
sessionStorage.setItem("key", checkedIdStr);
};
var arrBefor = [1,2,3];
storageObj(arrBefor);
var arrAfter = JSON.parse(sessionStorage.getItem("key"));
console.log(arrAfter,typeof arrAfter);//[1, 2, 3] "object"
存储对象
function storageObj(obj) {
var checkedIdStr = JSON.stringify(obj);
sessionStorage.setItem("key", checkedIdStr);
};
var objBefor = {
a:1,
b:2
};
storageObj(objBefor);
var objAfter = JSON.parse(sessionStorage.getItem("key"));
console.log(objAfter,typeof objAfter);//{a: 1, b: 2} "object"
var userEntity = {
name: 'tom',
age: 22
};
将对象转换为Json字符串
var newdata = localStorage.setItem('user', JSON.stringify(userEntity));
再将localStorage中的字符串转成对象数组
var tmp_pList = JSON.parse(newdata);
取值时:把获取到的Json字符串转换回对象
var userJsonStr = localStorage.getItem('user');
userEntity = JSON.parse(userJsonStr);
console.log(userEntity.name); // => tom