Javascript 在外部文件$中获取json数组。getJSON不起作用
我有一个json文件: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,
{
"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
它也不是路径谢谢你的回答。$我该怎么做?