我使用此代码获取存储在同一文件夹中的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解析的相同方法(我未在此处包含)来提取total的值。
当调用populateHeader11时,它不会将schedtotal更改为等于total。它保持原来的0设置。控制台日志从函数返回已激活,并返回JSON文件,所以我知道它至少可以访问它。
我尝试将.jsonObj.total
更改为.jsonObj['total']
并且它没有改变任何内容。
以前我曾经搞过这个问题,它有时会回复一个错误,说它无法完全解决这个问题。从null。现在它只是没有返回当前状态的任何东西。发生了什么事?
答案 0 :(得分:2)
在尝试访问total
字段之前,需要将JSON字符串解析为对象。
var jsonString = "{\"total\": 3}";
var jsonObj = JSON.parse(jsonString);
console.log(jsonObj.total);