2013-03-27 85 views
-1

我有一個簡單的JavaScript文件,javascriptvar.js,它包含文件中像這樣內的JSON:JavaScript變量等於JSON數據文件

var ajavascriptjsonvariable = { 
      id: "someid", 
      name: "somerandomname", 
      data: {}, 
      children: []  
     }; 

什麼,我試圖做的是簡單地使VAR ajavascriptjsonvariable等於存儲json的文本文件。所以,我創建了一個名爲「data.json」文件,這裏面:

 { 
       id: "someid", 
       name: "somerandomname", 
      data: {}, 
      children: []  
      } 

(?我不知道如果我需要在data.json與否的最後一個分號)

現在我試圖讓js文件中的變量ajavascriptjsonvariable讀取data.json文件,但它不會通過。這是我做的:

$.getJSON("data.json", function(data){}); 
var ajavascriptjsonvariable = data; 

如何獲取ajavascriptjsonvariable = data.json文件?

編輯,對不起,引號是一個錯字,糾正它們,我問的是我認爲我應該包括東西到函數(數據){}括號部分使ajavascriptjsonvariable讀取data.json文件,我不知道那一部分,那就是我想要弄明白的。

回答

0

AJAX是異步的,在99%的情況下,將一個值賦給一個變量,而這個變量在回調函數中沒有使用是錯誤的。下面是你應該

$.getJSON("data.json", function(data) { 
    // use data here 
}); 

很明顯,你可以分配data存在於外部作用域一些其他的變量,但你不能只用它的$.getJSON()調用後!您需要調用依賴回調函數結果的任何代碼。

0
var MyVariableModule = (function($){ 

var myJavaScriptJsonVariable = null; 

var getJsonFile = function(){ 
    return $.getJSON("data.json").done(function(data) { 
    myJavaScriptJsonVariable = $.trim(data); 
    }); 
}; 

return { 
     makeComparison : makeComparison 
}; 
})(jQuery); 
1

首先把JSON不會驗證它看​​起來應該是這樣

{ 
    "id": "someid", 
    "name": "somerandomname", 
    "data": {}, 
    "children": [] 
} 

下一個,因爲你在這裏做一個Ajax調用,U必須將Ajax回調函數中值

$.getJSON("data.json", function(data){ 
    var ajavascriptjsonvariable = data; 
    /* Rest of the code with uses the "ajavascriptjsonvariable" variable */ 
});