-1

我有一个简单的 javascript 文件 javascriptvar.js,它在该文件中包含一个 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 文件?

编辑,对不起,引号是一个错字,更正它们,我要问的是我认为我应该在 function(data){} 括号部分中包含一些东西,以使 jsonvariable 读取 data.json 文件,我不知道那部分,这就是我想要弄清楚的。

4

3 回答 3

1

首先 JSON 不会验证它应该看起来像这样

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

接下来,因为您在这里进行 ajax 调用,所以您必须在 ajax 回调函数中分配值

$.getJSON("data.json", function(data){
    var ajavascriptjsonvariable = data;
    /* Rest of the code with uses the "ajavascriptjsonvariable" variable */
});
于 2013-03-27T12:49:06.187 回答
0

AJAX 是异步的,在 99% 的情况下,将值分配给您在回调函数中不使用的变量是错误的。这是你应该做的:

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

显然,您可以分配data给外部范围中存在的其他一些变量,但是您不能只在$.getJSON()调用后使用它!您需要调用任何依赖于回调函数结果的代码。

于 2013-03-27T12:38:18.987 回答
0
var MyVariableModule = (function($){

var myJavaScriptJsonVariable = null;

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

return {
      makeComparison : makeComparison 
};  
})(jQuery);
于 2013-03-27T12:46:41.353 回答