我想知道是否可以将变量中的数据存储到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;
答案 0 :(得分:3)
首先为您的游戏创建一个命名空间,例如Game
:
var Game = {};
从现在开始,与游戏有关的所有变量都会在那里进行。这是为了尽量减少全球范围的使用(这是邪恶的)。
然后说你希望拥有score
和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对象存储为服务器上的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!
}
}