正在加载本地 JSON 文件

2022-08-29 23:18:51

我正在尝试加载本地 JSON 文件,但它不起作用。这是我的JavaScript代码(使用jQuery):

var json = $.getJSON("test.json");
var data = eval("(" +json.responseText + ")");
document.write(data["a"]);

test.json 文件:

{"a" : "b", "c" : "d"}

没有显示任何内容,Firebug告诉我这是未定义的。在Firebug中,我可以看到它很好,很有效,但是当我复制行时很奇怪:datajson.responseText

 var data = eval("(" +json.responseText + ")");

在Firebug的控制台中,它可以工作,我可以访问数据。

有人有解决方案吗?


答案 1

$.getJSON 是异步的,所以你应该这样做:

$.getJSON("test.json", function(json) {
    console.log(json); // this will show the info it in firebug console
});

答案 2

我有同样的需求(测试我的angularjs应用程序),我发现的唯一方法是使用require.js:

var json = require('./data.json'); //(with path)

注意:文件加载一次,进一步的调用将使用缓存。

有关使用 nodejs 读取文件的更多信息:http://docs.nodejitsu.com/articles/file-system/how-to-read-files-in-nodejs

要求.js: http://requirejs.org/