You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将JS对象完整存入Local Storage并读取替换原对象?

实现文字游戏存档/读档功能方案

1. 先修正房间数据对象的语法错误

你的示例代码存在JS语法问题,对象属性需用冒号(:)定义,且同级属性/对象间需加逗号(,),修正后如下:

var rooms = {
    room1: {
         item1: "one",
         item2: "two"
    },
    room2: {
         item1: "one",
         item2: "two"
    }
 };

2. 实现存档功能

Local Storage仅支持存储字符串,需用JSON.stringify()将JS对象转为JSON字符串后存入:

// 存档函数
function saveGame() {
    const savedRooms = JSON.stringify(rooms);
    localStorage.setItem("textGameRooms", savedRooms);
    alert("存档成功!");
}

3. 实现读档功能

读取时用JSON.parse()将存储的JSON字符串转回JS对象,替换当前的rooms:

// 读档函数
function loadGame() {
    const savedRooms = localStorage.getItem("textGameRooms");
    if (savedRooms) {
        rooms = JSON.parse(savedRooms);
        alert("读档成功!");
    } else {
        alert("暂无存档数据!");
    }
}

4. 绑定触发操作

通过用户操作(比如按钮点击)触发存档/读档,示例HTML代码:

<button onclick="saveGame()">保存游戏</button>
<button onclick="loadGame()">加载游戏</button>

注意事项

  • Local Storage数据是持久化的,除非用户手动清除缓存或调用localStorage.removeItem("textGameRooms")删除存档
  • 确保rooms对象仅包含可序列化数据(字符串、数字、布尔值、普通对象、数组),函数或循环引用会导致JSON.stringify()失败

内容的提问来源于stack exchange,提问作者Cerric Liadon

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.12 07:03:13