Javascript 在外部文件$中获取json数组。getJSON不起作用

Javascript 在外部文件$中获取json数组。getJSON不起作用,javascript,arrays,json,Javascript,Arrays,Json,我有一个json文件: { "Tools": [ { "Price": 25, "Counter": 0, "Multi": 4, "PriceMult": 1.3, "Name": "Cycler", "ID": "Tool2" }, { "Price": 50, "Counter": 0, "Multi": 4,

我有一个json文件:

{
"Tools": [
    {
        "Price": 25,
        "Counter": 0,
        "Multi": 4,
        "PriceMult": 1.3,
        "Name": "Cycler",
        "ID": "Tool2"
    },
    {
        "Price": 50,
        "Counter": 0,
        "Multi": 4,
        "PriceMult": 1.3,
        "Name": "Cycler",
        "ID": "Tool3"
    }
]
}
如果我使用getJSON,它将不起作用:

$.getJSON("http://localhost/test/json/tool.json", function(data ) {
  alert(data.Tools[0].Price);
});
如果我使用JSON.parse,它可以工作:

var obj = JSON.parse('{"Tools" : [{"Price": 25,"Counter": 0,"Multi": 4,"PriceMult": 1.3,"Name": "Cycler","ID": "Tool2"},{"Price": 50,"Counter": 0,"Multi": 4,"PriceMult": 1.3,"Name": "Cycler","ID": "Tool3"}]}');
alert(obj.Tools[0].Price);
为什么会这样


编辑:

此代码是输出25:

$.getJSON("http://localhost/test/json/tool.json", function(data ) {
  alert(data.Price);
});

您可能需要通过以下方式访问该文件:

$.getJSON("test/json/tool.json", function(data ) {
  alert(data.Tools[0].Price);
});
我不知道本地主机服务器的上下文根。上面的示例假设它是
test
的父文件夹。如果是
test
文件夹本身,请从url字符串中删除
test

$.getJSON("json/tool.json", function(data ) {
  alert(data.Tools[0].Price);
});

您是否检查了$.getJSON调用的状态?这将给出状态代码,指示通过ajax请求检索文件时出现的任何问题

,感谢大家的帮助

问题自行解决了。我今天用
alert(data.Tools[0].Price)试用了它并且它可以工作


可能是缓存有问题。

很可能是因为它没有接收文件。控制台上抛出了艾米错误?如果我在json文件中没有使用数组,它会工作!这只适用于json数组……如果转到
http://localhost/test/json/tool.json
在您的浏览器中?我假设您的页面也在
http://localhost/
,这意味着这不是跨域问题,对吗?
警报(data.Price)不应该工作。可能是缓存问题?请比“它不起作用”更具体一些。是否调用了成功处理程序?localhost服务器的上下文根是什么?如果它是
test
文件夹,那么你应该从上面的url中删除
test
。我用
test/json/tool.json
json/tool.json
尝试过它,甚至用
tool.json
它也不是路径谢谢你的回答。$我该怎么做?