这是我的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);
但是当我运行脚本时,警告框显示“未定义”。谁能告诉我这里我做错了什么?我已经在这里工作了几个小时,似乎无法找到答案。谢谢你的帮助。
答案 0 :(得分:4)
responseText
属性引用包含响应文本的字符串。它不包含JavaScript对象,因此没有pageTitle
属性。
由于字符串采用JSON格式,因此可以使用JSON.parse
方法将其轻松解析为对象:
jsonObj = JSON.parse(ajaxReq.responseText);
答案 1 :(得分:-1)
更新jsonObj = ajaxReq.responseText;
以跟进,请尝试!
jsonObj = eval('(' + ajaxReq.responseText + ')');