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
  1. 印刷、whatserverが戻ります。次のようなもの:console.debug(data);
  2. 他のjsonファイルのコンテンツを試してください。例:これ:

    {"one": "特異な感覚"、 "two": "小さな小さな目"、 "three":"小さな鳥が私の玄関先でピッチング"}

幸運を ;-)

于 2012-09-17T14:29:41.430 に答える
0

たぶんjsonは有効ではありません。試す:

{"1": "Store1"、 "2": "Store2"、 "3":"Store3"}

一重引用符で二重に。一重引用符でjsonlint.comは検証しません...。

于 2012-09-17T14:36:45.013 に答える
0

ローカルのjsonファイルにアクセスしようとしている場所の場合。webkitブラウザはそれを許可していません。でchromeを起動してみてください--allow-file-access-from-files。同じアクセスがIE8以降で拒否されます。 $.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 に答える