0

我想知道是否可以将变量中的数据存储到 json 文件中?

var json_object = {"test":"Hello"}
    $.ajax({
            url: "save.php",
            data: json_object,
            dataType: 'json',
            type: 'POST',
    success: function (json_object) {
        console.log(json_object);
        $("#data").text("Data has been saved.");},
    error: function (json_object){
        console.log(json_object);
        $("#data").text("Failed to save data !");}

这是我用来保存数据的方法,现在我不想将 Hello 存储为字符串,而是希望 Helloworld 成为一个变量

var hello = world;
4

1 回答 1

3

首先为您的游戏创建一个命名空间,例如Game

var Game = {};

从现在开始,所有与你的游戏有关的变量都会出现。这是为了尽量减少全局范围的使用(这是邪恶的)。

然后说你想要一个带有scoreand的状态level。你这样做:

Game.state = {
  score: 0,
  level: 1
}

在游戏过程中它可以修改,例如:

Game.state.score = 42;
Game.state.level++;

要保存它,请发送 Ajax 请求:

$.ajax({
        url: "save.php",
        data: {
            state: JSON.stringify(Game.state) // sending Game.state as JSON string
        },
        dataType: 'json',
        type: 'POST',
        success: function (json_object) {
            console.log(json_object);
            $("#data").text("Data has been saved.");
        },
        error: function (json_object) {
            console.log(json_object);
            $("#data").text("Failed to save data !");
        }
    }

JSON.stringify(Game.state)将是一个如下所示的字符串:'{"level":0,"score":42}'.

好的,所以在保存后,您将发送的 JSON 对象作为字符串存储在您的服务器或其他东西上,并且在将来的某个时候您想要检索它。您可以通过以下方式实现:

$.ajax({
        url: "load.php",
        data: "", // no data, we are just loading
        dataType: 'json',
        type: 'POST',
        success: function (state) {
            Game.state = state; // okay, state loaded and assigned to our Game.state!
        }
    }
于 2013-10-02T14:29:56.920 回答