如何在本地存储中存储对象数组?
这是我的代码。我尝试了几天后创建一个对象数组,然后我将其存储在本地存储中。这是问题所在,我需要先从本地存储获取现有值。如何在本地存储中存储对象数组?
然后我需要添加新的数据对象到现有的数组。然后我将它转换成JSON,以便我可以将它存储回本地存储。
onRegisterSubmit(){
const user = {
a: this.a,
b: this.b,
c: this.c,
id: Date.now()
}
var abc = [];
var get = JSON.parse(localStorage.getItem('user'));
abc = [get];
abc.push(user);
localStorage.setItem('user', JSON.stringify(abc));
console.log(JSON.stringify(abc));
console.log(get);
}
我想要的JSON是这样的对象的数组,
[{"hour":1,"minute":21,"ampm":"PM","repeatDays":[],"message":"","todayOrTomorrow":"Tomorrow","isRepeatMode":false,"isEnabled":false,"id":"1493797882440"},{"hour":1,"minute":24,"ampm":"PM","repeatDays":[],"message":"","todayOrTomorrow":"Tomorrow","isRepeatMode":false,"isEnabled":false,"id":"1493797896257"},{"hour":6,"minute":14,"ampm":"PM","repeatDays":[],"message":"","todayOrTomorrow":"Tomorrow","isRepeatMode":false,"isEnabled":false,"id":"1493815470408"}]
这是我的JSON。
[[[[[[[{"id":1493820594019},{"id":1493820606448}],{"id":1493820609111}],{"id":1493820610150}],{"id":1493820610553}],{"id":1493820610827}],{"id":1493820611015}],{"id":1493820612018}]
我一直在尝试几天,任何帮助将不胜感激。
与该代码的问题是:
你包装的结果,你在阵列中获得,但在理论上,要已经有一个数组。
您正在存储(您删除与编辑。)user
,而不是get
或abc
。
要存储阵列,你在做什么:
localStorage.setItem("users", JSON.stringify(users));
为了获取数组:
users = JSON.parse(localStorage.getItem("users") || "[]");
请注意,如果getItem
返回null
,那么它将提供一个默认(空数组),因为我们从未将用户存储在那里。
将用户添加到阵列:
users.push({id: 1, foo: "bar"});
实施例(live on jsFiddle[堆栈代码段不允许本地存储]):
(function() { // Scoping function to avoid creating globals
// Loading
var users = JSON.parse(localStorage.getItem("users") || "[]");
console.log("# of users: " + users.length);
users.forEach(function(user, index) {
console.log("[" + index + "]: " + user.id);
});
// Modifying
var user = {
id: Math.floor(Math.random() * 1000000)
};
users.push(user);
console.log("Added user #" + user.id);
// Saving
localStorage.setItem("users", JSON.stringify(users));
})();
这表明您的控制台中的当前用户列表,每次刷新页面时添加一个。
做了一些编辑。我正在存储abc。 –
@尼哈:很好。上面的要点仍然有效。增加了一个例子。 –
没有人工作,我几乎没有任何理解。谢谢,但我希望有一天我能理解。谢谢你的努力。真的很感激它。 –
尝试是这样的: - 链接https://jsfiddle.net/sureshraina/nLexkyfw/1/
var mydatas = new Array();
mydatas[0] = "data";
mydatas[1] = "data1";
mydatas[2] = "data2";
localStorage["mydatas"] = JSON.stringify(mydatas);
var datas = JSON.parse(localStorage["mydatas"]);
什么问题呢?你得到的错误是什么? – Nathan
当onRegisterSubmit被执行时,这成为结构。 [[[[[[[{ “ID”:1493820594019},{ “ID”:1493820606448}],{ “ID”:1493820609111}],{ “ID”:1493820610150}],{ “ID”:1493820610553}] ,{“id”:1493820610827}],{“id”:1493820611015}],{“id”:1493820612018}] –
[在HTML5 localStorage中存储对象](http://*.com/questions/2010892/stored-objects-in-html5-localstorage) – xale94