这是我的test.json文件

{
"pageTitle": "Test Page",
"firstName": "Matt"
}


这是我在JS文件中访问它的方式

var jsonObj = {};
var ajaxReq = new XMLHttpRequest();
ajaxReq.overrideMimeType("application/json");
ajaxReq.open('GET', 'path/to/file/test.json', true);
ajaxReq.onreadystatechange = function ()
{
    if (ajaxReq.readyState == 4)
    {
        jsonObj = ajaxReq.responseText;
        alert(jsonObj.pageTitle);
    }
}
ajaxReq.send(null);


但是,当我运行脚本时,警报框显示“未定义”。有人可以告诉我我在做什么错吗?我已经为此工作了两个小时,似乎找不到答案。感谢您的任何帮助。

最佳答案

responseText属性引用一个字符串,其中包含响应文本。它不包含JavaScript对象,因此没有pageTitle属性。

由于字符串为JSON格式,因此可以使用JSON.parse方法轻松将其解析为对象:

jsonObj = JSON.parse(ajaxReq.responseText);

关于javascript - 访问JSON文件有问题吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14029322/

10-11 02:29