非同期 JSON 読み込み
jQuery の $.getJSON メソッドを使用してローカル JSON ファイルを読み込むと、読み込まれたファイルにアクセスしようとすると、予期しない動作が発生する場合があります。データ。これは、$.getJSON が非同期で実行されるために発生します。つまり、JSON ファイルが完全にロードされる前に、データにアクセスする後続のコードが実行される可能性があります。
提供された例では:
var json = $.getJSON("test.json"); var data = eval("(" + json.responseText + ")"); document.write(data["a"]);
eval 行失敗します。 karena json.responseText は、JSON ファイルがまだロードされていないため、まだ定義されていません。
この問題を解決するには、コールバック関数を使用して $.getJSON を非同期的に処理する必要があります。
$.getJSON("test.json", function(json) { console.log(json); // Access the loaded data within this callback });
この非同期アプローチを実装することにより、JSON データにアクセスするコードはデータの後でのみ実行されます。完全にロードされ、データが定義されアクセス可能であることが保証されます。
以上がjQuery の $.getJSON() を使用して JSON データを非同期にロードする際のエラーを回避するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。