我正嘗試將JSON文件讀入全局數組對象中。代碼的工作原理除了我似乎無法找到一種方法將數據從Ajax $ .getJSON調用中移出到全局變量中。也許這是因爲範圍和或同步。將JSON文件讀入全局對象數組 - 範圍和同步問題
我已經嘗試了幾種方法,我用下面的代碼在一個JSON文件中讀取(見Using Jquery to get JSON objects from local file):
var questions = {};
$(document).ready(function() {
readJsonFile().done(function (questions) {
// This outputs the array of objects (questions) OK ->
console.log("Questions read from JSON file: " + questions);
});
// Cannot read from the array here
console.log("Question 1: " + questions[0].question);
...
function readJsonFile() {
return $.getJSON("questions.json").then(function (data) {
// This was in the original post and didn't seem to return the array
// return data.items;
return data;
});
};
謝謝。但是,在調用readJsonFile之外輸出問題[0] .question時,我仍然會'無法讀取屬性'問題'。同樣在控制檯窗口中,此錯誤在Ajax調用完成之前出現。這是由於異步加載? – wanwu
是的。第二個控制檯日誌在Ajax調用完成後立即執行,在響應返回之前執行,因此在執行回調之前。 – Tibos
我意識到的解決方案是使用對$ .ajax()的調用並確保async:false已設置。 – wanwu