1

我正在尝试使用以下方法从 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'
}

如果有人能告诉我为什么它不工作,那将不胜感激。谢谢。

4

3 回答 3

0

也许json无效。尝试:

{“1”:“商店 1”,“2”:“商店 2”,“3”:“商店 3”}

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

于 2012-09-17T14:36:45.013 回答
0
  1. 打印,whatserver 返回。类似于:console.debug(data);
  2. 尝试其他 json 文件内容。例如这个:

    {“一”:“奇异感觉”,“二”:“珠光宝气的小眼睛”,“三”:“我家门口的小鸟”}

祝你好运 ;-)

于 2012-09-17T14:29:41.430 回答
0

如果您尝试访问本地 json 文件的位置。webkit 浏览器不允许它。尝试使用--allow-file-access-from-files. 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 文件中以进行测试。

于 2012-09-17T14:55:23.850 回答