【问题标题】:Save data into json file in local storage将数据保存到本地存储中的 json 文件中
【发布时间】:2015-10-23 07:39:15
【问题描述】:

我在 Backbone 上开发了 HTML5 游戏。当您想使用编辑菜单和编辑世界时,它使用本地存储。您也可以使用此菜单更改您的角色。所以我想在游戏开始前添加角色选择,但我真的不知道如何将它插入到文件中。 文件如下所示:

3:"{"viewportBottom":0,"id":3,"tiles":[],"x":0,"y":0,"tileWidth":32,"tileHeight":32,"width":212,"height":17,"backgroundColor":"rgba(66, 66, 255, 1)","name":"level_1-1","sprites":[
{"name":"ground-ug","state":"idle","sequenceIndex":0,"x":32,"y":512},
{"name":"ground-ug","state":"idle","sequenceIndex":0,"x":0,"y":512},
{"name":"ground-ug","state":"idle","sequenceIndex":0,"x":64,"y":512},
{"name":"ground-ug","state":"idle","sequenceIndex":0,"x":128,"y":512},
{"name":"luigi","state":"idle-right","sequenceIndex":0,"x":192,"y":448,"velocity":0,"acceleration":0,"yVelocity":0,"yAcceleration":0}
],"savedOn":"2015-07-31T14:29:08.725Z","state":"play","viewportTop":0,"viewportRight":0,"viewportLeft":0,"time":748}"

例如,我想把 Luigi 换成马里奥,但我真的很菜鸟。

        <p id="Character" onclick="choose('mario')">Mario</p>

        <script>

            var character;
function choose(choice){
    character = choice;
}


            var parsed = JSON.parse(myJSONData, function(k, v) {
                    if (v === "mario") 
                        this.value = character;
                    else
                        return v;
                });
    }
        </script> 

顺便说一句,它不起作用:D 我也不知道如何将它存储到本地存储中。我正在查看文档,但我并不聪明:D 这个基于 Backbone 的游戏的文档:http://martindrapeau.github.io/backbone-game-engine/

有人能帮帮我吗? :) 谢谢。

【问题讨论】:

  • 那是怎么回事。使用 json 解析保存游戏统计数据的对象。并将其保存在本地存储中,因为本地存储只接受键值对。

标签: javascript json html backbone.js local-storage


【解决方案1】:

将某些内容存储到本地存储:

localStorage.variableName = 'value';

请注意,本地存储仅允许您使用 strings,因此存储 JSON 数据意味着执行 JSON.stringify(data)。

从本地存储中检索很简单:

var dataStr = localStorage.variableName;

【讨论】:

  • 嗯,是的,但它已经存储在本地存储中。我需要将价值从马里奥更改为路易吉。
  • 在您的JSON.parse 电话下方添加console.log(parsed); 并在此处发布结果
  • 好吧,我写的不好。关键是“3”,价值是完整的:(编辑)它太长了,但这是我在第一篇文章中发布的内容。我需要将 luigi 更改为 mario 或其他任何内容,但整个代码是值,键是“3”。
  • '3'的值本身就是一个需要解析的JSON字符串
  • 好吧,我不明白。我使用了另一种方法:在 js 文件中,我将 mario 替换为 luigi,现在我需要将代码写入 js 文件 var world = '{the code in the first post}'; var res = world.replace("mario", "luigi"); window._world = { id: 3, tiles: [], x: 0, y: 0, tileWidth: 32, tileHeight: 32, width: 212, height: 17, backgroundColor: "rgba(66, 66, 255, 1 )", name: "level_1-1", sprites: [ ** 我这里需要代码** ],
猜你喜欢
  • 2021-03-19
  • 2016-04-29
  • 2022-01-16
  • 2014-07-07
  • 1970-01-01
  • 2019-03-31
  • 2015-03-22
  • 1970-01-01
相关资源
最近更新 更多