如何在 localStorage / sessionStorage 中保存和读取 JavaScript 对象
大家好。我是 JavaScript 新手,尝试将对象保存到 localStorage 中,以便页面刷新后数据仍然保留。我正在写一个小应用——任务列表 (todo list)。每个任务都是一个包含字段的对象:`{ id: 1, text: "买牛奶", done: false }`。
我尝试这样保存对象数组:
```javascript
const tasks = [
{ id: 1, text: "买牛奶", done: false },
{ id: 2, text: "给医生打电话", done: true }
];
localStorage.setItem('myTasks', tasks);
```
然后尝试读取:
```javascript
const saved = localStorage.getItem('myTasks');
console.log(saved);
```
在控制台中看到 `[object Object],[object Object]`。这不是数组,而是一个奇怪的字符串。如果输出 `typeof saved`,得到 `string`。我无法访问对象的属性,例如 `saved[0].text` 返回 `undefined`。
我了解到 localStorage 只存储字符串。那么如何正确保存对象呢?是否需要将它们转换为字符串,然后读取时再转换回来?