当谈到与本地存储之间传输数据时,我已经从该站点获取了一些要点。但是,它似乎无法正常工作。简而言之,我试图以包含对象的数组的形式将数据加载到本地存储或从本地存储加载数据。我知道它在本地存储中保存为字符串,然后使用 JSON 格式来解决该问题,这也是我认为当对象中存在对象时可能出现问题的地方。然而,在目前的状态下,它似乎不起作用。有什么想法吗?
var students = [{name: "Petrina", age: "20"}];
function saveList(){
localStorage.setItem('somekey', JSON.stringify(students));
console.log("Saved to Local");
}
function loadList(){
students = JSON.parse(localStorage.getItem('somekey'));
}
代码没有给出错误,我正在使用与加载窗口相关的函数。
window.onload = () => { loadList() }
最佳答案
您已添加您正在从 onload
进行调用,并且
在您的代码中,您将加载到 students
中。
添加到代码的开头:
var 学生;
.
注意:某些对象需要特殊处理。
例如:日期
:
var date = new Date();
localStorage.date = JSON.stringify(date);
date = new Date(JSON.parse(localStorage.date));
在附加信息之前回答:
key
是 localStorage
的一种方法。
不要使用它。
例如,使用students
。
Storage.key()
(这是假设您调用函数)
var students = [{name: "Petrina", age: "20"}];
function saveToLocalStorage(key, value){
localStorage.setItem(key, JSON.stringify(value));
console.log("Saved to LocalStorage");
}
function loadFromLocalStorage(key){
console.log("Loaded from LocalStorage");
return JSON.parse(localStorage.getItem(key));
}
console.log("students: "+students);
saveToLocalStorage("stu", students);
var st2=loadFromLocalStorage("stu");
console.log("st2: "+st2);
- 无法在代码片段中运行:沙盒化,无法访问 localStorage - 跨源。
关于javascript - 从本地存储检索数据对象并将其重新加载到数组中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64338502/