2013-10-02 71 views
0

我想知道是否可以將數據從變量存儲到json文件中?將JavaScript變量保存爲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 !");} 

這是我用它來保存數據,現在不是存儲你好作爲一個字符串的我想的Helloworld是例如可變

var hello = world; 
+0

你可以這樣做,但它不會再是JSON了。這聽起來很像[XY問題](http://meta.stackexchange.com/a/66378/169187)---你想用這個完成什麼? – JJJ

+0

我在javascript中創建一個minigame,我想我必須使用json才能保存數據,那麼我該如何保存該數據呢? – Skugga

+1

請勿使用全局變量。把所有的遊戲數據放到一個對象上,你可以按照原樣傳遞這個對象。 – JJJ

回答

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對象作爲字符串存儲在您的服務器上或某個地方,並且在將來的某個時刻您想要檢索它。你可以這樣做:

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