求助,关于JSON.parse()这个函数的问题

m_star_moon 2019-02-27 12:20:40
<!doctype html>
<html>
<head>
<meta charset="UTF-8">
<title>Document</title>
<script src="js/common.js"></script>
<script>
function visitJSON(){
var xhr=createXhr();
xhr.open("get","json/users.json",true);
xhr.onreadystatechange=function(){
if(xhr.readyState==4&&xhr.status==200){
var res=xhr.responseText;
console.log(xhr.responseText);
var obj=JSON.parse(res);
console.log(obj);
for(var i=0;i<obj.length;i++){
console.log("用户名称:"+obj[i].uname);
console.log("用户密码:"+obj[i].age);
console.log("用户性别:"+obj[i].gender);
}
}

}
xhr.send(null);
}
</script>
</head>
<body>
<button onclick="visitJSON()">用ajax异步访问json</button>
</body>
</html>
users.json中的内容是
[
{"uname":"降格00","upwd":"aswq","gender":"男"},
{"uname":"哈阿海00","upwd":"aswq","gender":"男"},
{"uname":"英语00","upwd":"aswq","gender":"女"}
]
我用ajax异步请求访问这个文件 var obj=JSON.parse(res);就是报错,这怎么回事,刚学js
...全文
251 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
m_star_moon 2019-02-27
  • 打赏
  • 举报
回复
Uncaught SyntaxError: Unexpected number in JSON at position 28 at JSON.parse (<anonymous>) at XMLHttpRequest.xhr.onreadystatechange (新的文档 56.html:15) 这样报错
讨厌走开啦 2019-02-27
  • 打赏
  • 举报
回复
把console.log(xhr.responseText);这里打印出的内容贴出来看看。
Hello World, 2019-02-27
  • 打赏
  • 举报
回复
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title></title>
</head>
<body>
<button onclick="visitJSON()">用ajax异步访问json</button>
</body>
</html>
<script src="../../Scripts/jquery-1.9.1.js"></script>
<script>
function createXhr() {
try {
AjaxRequest = new XMLHttpRequest();
} catch (trymicrosoft) {
try {
AjaxRequest = new ActiveXObject("Msxml2.XMLHTTP");
} catch (othermicrosoft) {
try {
AjaxRequest = new ActiveXObject("Microsoft.XMLHTTP");
} catch (failed) {
AjaxRequest = false;
}
}
}
if (!AjaxRequest) {
alert("Error initializing XMLHttpRequest!");
return false;
} else {
return AjaxRequest;
}
}

function visitJSON() {
var xhr = createXhr();
xhr.open("get", "users.json", true);
xhr.onreadystatechange = function () {
if (xhr.readyState == 4 && xhr.status == 200) {
var res = xhr.responseText;
console.log(xhr.responseText);
var obj = JSON.parse(res);
console.log(obj);
for (var i = 0; i < obj.length; i++) {
console.log("用户名称:" + obj[i].uname);
console.log("用户密码:" + obj[i].age);
console.log("用户性别:" + obj[i].gender);
}
}

}
xhr.send(null);
}
</script>

風灬雲 2019-02-27
  • 打赏
  • 举报
回复
引用 4 楼 m_star_moon 的回复:
谢谢你的回答,我终于明白了,另外老师叫我们以后多使用try catch用法,我以前没注意,现在发现很多大佬都这样用,请问有什么好处吗,
这个是防止代码出错的备用方案;大概的意思就是这段代码会在某些特定的情况报错;一旦报错,后面的代码就不会在执行;所以用try{}包起来,然后在catch{}中写另外的备用代码,如果前面的代码报错就会执行catch里面的代码; 一般用于预料中的错误处理;比如说:代码运行时的不确定性导致运行结果出错;可以在catch中编写提示用户的代码; 错误处理:指的是只能通过捕捉代码非法时的处理方法;目的是处理代码中不可避免的错误,而不是用来防止代码报错 try catch对页面性能有影响,所以不推荐包含大量代码块;
m_star_moon 2019-02-27
  • 打赏
  • 举报
回复
谢谢你的回答,我终于明白了,另外老师叫我们以后多使用try catch用法,我以前没注意,现在发现很多大佬都这样用,请问有什么好处吗,

87,904

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧