1

这是我的 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);

但是当我运行脚本时,警报框会显示“未定义”。谁能告诉我我在这里做错了什么?我已经为此工作了几个小时,似乎无法找到答案。感谢您的任何帮助。

4

2 回答 2

4

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

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

jsonObj = JSON.parse(ajaxReq.responseText);
于 2012-12-25T09:23:04.310 回答
-1

更新jsonObj = ajaxReq.responseText;跟随路线,请尝试!

jsonObj = eval('(' + ajaxReq.responseText + ')');
于 2012-12-25T09:22:43.537 回答