使用Javascript解析JSON对象,只是不起作用

时间:2017-02-03 05:29:23

标签: javascript json

我使用此代码获取存储在同一文件夹中的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。现在它只是没有返回当前状态的任何东西。发生了什么事?

1 个答案:

答案 0 :(得分:2)

在尝试访问total字段之前,需要将JSON字符串解析为对象。

var jsonString = "{\"total\": 3}";
var jsonObj = JSON.parse(jsonString);
console.log(jsonObj.total);