0
我使用這段代碼來獲取存儲在同一個文件夾中的JSON文件。用JavaScript解析一個JSON對象,就不會起作用
var schedtotal = 0;
var requestURL11 = 'schedtotal.json';
var request11 = new XMLHttpRequest();
request11.open('GET', requestURL11);
request11.responseType = 'json';
request11.send();
request11.onload = function() {
window.superHeroes11 = request11.response;
populateHeader11(superHeroes11);
}
function populateHeader11(jsonObj) {
window.schedtotal = jsonObj.total;
console.log("populateHeader function has activated");
console.log(jsonObj);
}
文件看起來是這樣的:
{"total": 3}
它是有效的JSON。我試圖使用與其他文件中的其他JSON解析成功使用的相同的確切方法(我沒有在這裏列出)提取總數的值。
當調用populateHeader11時,它不會將schedtotal更改爲等於總數。它保持原來的設置0.控制檯日誌從該函數返回,因爲它已經被激活,並且還返回JSON文件,所以我知道它至少可以訪問它。
我試過改變.jsonObj.total
到.jsonObj['total']
它沒有改變任何東西。
以前的時間我已經搞砸了,它有時會返回一個錯誤,說它無法從null中獲得'total'。現在它只是不返回任何目前的狀態。到底是怎麼回事?
'console.log(jsonObj)'顯示什麼?它是否在控制檯中顯示「Object」的下拉列表,還是顯示「{」total「:3}'? –
您是否嘗試將'request11.response'的內容打印到控制檯?它看起來很可疑,你在發送請求的時候設置了'onload'回調(我不確定JavaScript是如何容易出現這種競爭狀態的)。你使用某種Web服務器嗎?在「開發者控制檯」的「網絡」選項卡上是否有任何內容(Chrome/Firefox中存在,通過按F12打開)? – yeputons