2013-03-27 103 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 */ 
});