jquery json调用不工作

时间:2012-09-17 14:24:06

标签: jquery ajax json

我正在尝试使用以下方法从json文件创建一个数组:

<script type="text/javascript">
var stores = [];
$.getJSON('js/locations.json', function(data) {
    $.each(data, function(key, value) {
        stores.push("<option value="+key+">"+value+"</option>");  
    }); 
});
</script>

但是当我调用它时,数组似乎是空的。 json文件如下所示:

{
    '1' : 'Store 1',
    '2' : 'Store 2',
    '3' : 'Store 3'
}

如果有人能告诉我为什么它不起作用,那将是非常感激的。感谢。

3 个答案:

答案 0 :(得分:0)

  1. 打印,whatserver返回。类似于:console.debug(data);
  2. 尝试其他json文件内容。例如:

    {   “一”:“奇异的感觉”,   “两个”:“小小的眼睛”,   “三”:“小鸟在家门口” }

  3. 祝你好运; - )

答案 1 :(得分:0)

也许json无效。尝试:

{     “1”:“Store1”,     “2”:“Store2”,     “3”:“Store3” }

单引号加倍。用单引号jsonlint.com不要验证....

答案 2 :(得分:0)

如果您尝试访问本地json文件的位置。 webkit浏览器不允许它。  尝试使用--allow-file-access-from-files启动chrome。 IE 8+拒绝相同的访问权限。 $.getJSON在Firefox中提供了读取本地文件的问题。可能的解决办法就是通过这个。

var req = new XMLHttpRequest();
req.open("GET", "a.json",false);
req.overrideMimeType("application/json");
req.send(null);
var myJson = req.responseText;

或者您可以将JSON作为var放在JS文件中以进行测试。