如何将数组存储在localStorage中?
这个问题在这里已经有了答案:
localStorage
只支持字符串。 使用JSON.stringify()
和JSON.parse()
。
var names = [];
names[0] = prompt("New member name?");
localStorage.setItem("names", JSON.stringify(names));
//...
var storedNames = JSON.parse(localStorage.getItem("names"));
localStorage
和sessionStorage
只能处理字符串。 您可以扩展默认的存储对象来处理数组和对象。 只需包含这个脚本并使用新的方法:
Storage.prototype.setObj = function(key, obj) {
return this.setItem(key, JSON.stringify(obj))
}
Storage.prototype.getObj = function(key) {
return JSON.parse(this.getItem(key))
}
使用localStorage.setObj(key, value)
来保存数组或对象,并使用localStorage.getObj(key)
来检索它。 sessionStorage
对象使用相同的方法。
如果您只是使用新方法访问存储,则在保存并解析之前,每个值都将转换为JSON字符串,然后由getter返回。
来源:http://www.acetous.de/p/152
按照no建议使用JSON.stringify()
和JSON.parse()
。 这可以防止包含分隔符的成员名称(例如,成员名称three|||bars
)的罕见但可能的问题。
上一篇: How do I store an array in localStorage?
下一篇: Stringify (convert to JSON) a JavaScript object with circular reference