将javascript变量保存到JSON文件

时间:2013-10-02 13:54:40

标签: javascript php json

我想知道是否可以将变量中的数据存储到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;

1 个答案:

答案 0 :(得分:3)

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

var Game = {};

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

然后说你希望拥有scorelevel的州。你这样做:

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对象存储为服务器上的String或其他东西,并且在将来某个时候您想要检索它。您可以通过以下方式实现:

$.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!
        }
    }