HTML5存储

sessionStorage存储的数据类型具体有哪些 我去搜索了一下,基本都是说字符串类型。我自己也试了一下,sessionStorage能存储字符串类型数据和数组数据。但不能存储对象类型,需要先转化成字符串,才能存放。但我想数组也是对象啊,怎么能存储。有没有哪位大神能详细说说的

var arr = [1,2,3];
window.sessionStorage.setItem('key',arr);
document.body.innerHTML = window.sessionStorage.getItem('key');

这样是能行的

var json = {'aaa': 'aaa','bbb': 'bbb'};
window.sessionStorage.setItem('key',json);
document.body.innerHTML = window.sessionStorage.getItem('key');

这样是不行的,必须先把json转化成string类型

阅读 3.1k
1 个回答

一般存储数据的接口只能支持基本类型(数值、字符串等)。在js中,Array可以自动转换成字符串,例如[1, 2, 3]可以转换成"1, 2, 3",注意这转换过来的数据不是json格式的。普通的Object对象就不支持了。

var obj = { a:1, b:2 }
var arr = [1, 2, 3];
Object.prototype.toString = function(){
    return JSON.stringify(this);
}
Array.prototype.toString = function(){
    return JSON.stringify(this);
}
console.log('' + obj);//可以试试注释了上面Object.prototype的修改的结果
console.log('' + arr);//可以试试注释了上面Array.prototype的修改的结果

不过在项目的使用中,还是不要修改Object.prototype的方法,自己转换成字符串就可以了。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题