Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/89.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 正在尝试加载本地json文件,但无法在外部作用域中读取它_Javascript_Jquery_Json - Fatal编程技术网

Javascript 正在尝试加载本地json文件,但无法在外部作用域中读取它

Javascript 正在尝试加载本地json文件,但无法在外部作用域中读取它,javascript,jquery,json,Javascript,Jquery,Json,我试图读入一个大型的local.json文件,以便在我测试的代码中进行操作。下面的代码段将其加载并返回到我的控制台 var dataset; $.getJSON("data.json", function(json) { dataset = json.rows; console.log(dataset); }); 但是,当我将console.log放在函数外部时,如下所示,我在控制台中得到未定义的返回,并且在尝试使用dataset变量时在其他地方收到错误 var dataset; $.

我试图读入一个大型的local.json文件,以便在我测试的代码中进行操作。下面的代码段将其加载并返回到我的控制台

var dataset;

$.getJSON("data.json", function(json) {
 dataset = json.rows;
 console.log(dataset);
});
但是,当我将console.log放在函数外部时,如下所示,我在控制台中得到未定义的返回,并且在尝试使用dataset变量时在其他地方收到错误

var dataset;

$.getJSON("data.json", function(json) {
 dataset = json.rows;
});

console.log(dataset);
JavaScript新手,但我认为如果外部变量在函数外部声明,您可以更改它?jquery或这个特定函数是否有我遗漏的地方?目标是将json的行加载到JavaScript对象中进行操作,而不限于任何范围


谢谢

如果外部变量是在函数外部声明的,则可以更改外部变量

但是jQuery函数getJSON默认为异步函数,这意味着当console.logdataset;数据集变量仍未定义

如果要切换console.logdataset;设置IntervalConsole.logdataset,5000;。 它可能会工作,但现在它依赖于这样一个假设,即它所花费的时间总是小于或等于5秒

通过将全局ajax配置设置为禁用异步,可以解决此问题

此代码应按照您的预期工作:

// Switch to synchronous functions.
$.ajaxSetup({ async: false });

var dataset;

$.getJSON("data.json", function(json) {
 dataset = json.rows;
});

console.log(dataset);

谢谢你,看起来是这样的!