加载本地 JSON 文件

新手上路,请多包涵

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

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

test.json 文件:

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

什么都没有显示,Firebug 告诉我 data 未定义。在 Firebug 中我可以看到 json.responseText 并且它很好并且有效,但是当我复制该行时很奇怪:

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

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

有没有人有办法解决吗?

原文由 Patrick Browne 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 900
2 个回答

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

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

原文由 seppo0010 发布,翻译遵循 CC BY-SA 3.0 许可协议

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

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

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

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

require.js: http://requirejs.org/

原文由 Ehvince 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题