【发布时间】:2011-11-12 21:04:39
【问题描述】:
我正在尝试加载本地 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 的控制台中,它可以工作,我可以访问数据。
有人有解决办法吗?
【问题讨论】:
-
当您返回一个
JSON字符串时,您已经在检索一个javascript 对象,无需使用eval()。 -
什么叫“本地”json 文件?本地浏览器还是服务器?
-
你没有给我们足够的细节。文件
test.json没有指定任何路径,因此它是一个相对URI,相对于访问它的页面的位置。因此,就像@seppo0010 所说,如果页面位于某个远程服务器上,它将是服务器本地的,如果页面位于通过file://协议访问的本地文件系统中,它将相对于您的计算机。 -
@seppo0010 它在我的磁盘上位于同一文件夹中。我是第一次加载本地文件,不知道为什么加载 url 更容易,因为我认为我必须这样做。即从相对路径加载 JSON 文件
标签: javascript jquery json firebug local-files