2

そのため、JSON からグローバル変数にデータを割り当てて、後で複数回使用しようとしていますが、この問題が発生します。最初のアラートは正常に通過しますが、2 番目のアラートでは undefined のプロパティ 4 を読み取ることができません。

  var refference=[]
  $.getJSON('letters.json', function(data) {
              refference=data.letters
              alert(refference[1][4])
        })
  alert(refference[1][4])

ありがとう!

4

2 に答える 2

5

2 つ目alert(refference[1][4])は、その時点で$.getJSON()リクエストがまだ返されていないため、エラーが発生します。オブジェクトrefferenceはまだ[]であるため、プロパティ 4 は未定義です。

于 2013-03-18T22:02:17.080 に答える
1

Kevin B が言ったように、アラートは ajax 呼び出しが完了する前に発生しています。2 番目のアラート (またはその他の関数) を ajax リクエストの成功コールバックに配置して、データが完全に読み込まれた後に確実に発火するようにする必要があります。

何かのようなもの:

$.getJSON('letters.json', function(data) {
              refference=data.letters;
              alert(refference[1][4]);
        }).success(function(){
                    alert(refference[1][4]);
                  });

JSON Webサービスを使用した動作中のjsFiddleの例を次に示します

于 2013-03-18T22:04:04.597 に答える