/ / javascriptでのJSONデータへのアクセス未定義エラー[複製] - javascript、jquery、json

JavascriptでJSONデータにアクセスすると、定義されていないエラーが発生する[duplicate] - javascript、jquery、json

私はJSONデータを呼び出し、それに次のように書きます。

var data;

$(function () {
$.getJSON("data.json", function (d) {
data = d;
});
$(".btn").click(function () {
data["c-type"] = $("#c-ccy option:selected").val();
data["f-type"] = $("#f-ccy option:selected").val();
$.ajax({
type: "POST",
url: "save2json.php",
data: {"json": JSON.stringify(data)},
success: function (msg) {
console.log("php output: " + msg);
$.getJSON("data.json", function (d) {
console.log("GET JSON:");
console.log(d);
});
}
})
}); // <<THIS BLOCK OF CODE WORKS FINE AND READS/WRITES THE JSON OBJECT data PERFECTLY WHEN .btn IS CLICKED.>>

console.log(data); // <<ERROR: data undefined>>
})

最後の行のデータ変数にアクセスできないのはなぜですか。

回答:

回答№1は1

$ .getJSON()は非同期です。つまり、Javaスクリプトが応答を受け取る前にconsole.logを呼び出すことは頻繁にないので、データがありません。