以下是原代码:
Servlet如下:
public class JsonServlet extends HttpServlet{
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
StringBuffer sb = new StringBuffer();
sb.append("({\"").append("sb").append("\":").append("{username:\"").append("zhangsna\",")
.append("password:\"").append("jkc126").append("\"}})");
resp.getWriter().print(sb); } @Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
doGet(req, resp); //To change body of overridden methods use File | Settings | File Templates.
}
}js如下:$(document).ready(function(){
$.get("test",null,function(data){
var obj = eval(data);
var objval = obj["sb"];
var username = objval.username;
alert(username);
})
})
jsp如下:<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head><title>Simple jsp page</title></head>
<script type="text/javascript" src="jslib/jquery.js"></script>
<script type="text/javascript" src="jslib/test.js"></script>
<body></body>
</html>问题:当js去服务器端servlet请求json格式的数据后在js页面不能解析出得到的数据,具体错误为objval未定义,请高手帮忙解决下!
Servlet如下:
public class JsonServlet extends HttpServlet{
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
StringBuffer sb = new StringBuffer();
sb.append("({\"").append("sb").append("\":").append("{username:\"").append("zhangsna\",")
.append("password:\"").append("jkc126").append("\"}})");
resp.getWriter().print(sb); } @Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
doGet(req, resp); //To change body of overridden methods use File | Settings | File Templates.
}
}js如下:$(document).ready(function(){
$.get("test",null,function(data){
var obj = eval(data);
var objval = obj["sb"];
var username = objval.username;
alert(username);
})
})
jsp如下:<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head><title>Simple jsp page</title></head>
<script type="text/javascript" src="jslib/jquery.js"></script>
<script type="text/javascript" src="jslib/test.js"></script>
<body></body>
</html>问题:当js去服务器端servlet请求json格式的数据后在js页面不能解析出得到的数据,具体错误为objval未定义,请高手帮忙解决下!
var x = "var y = {name:'haha',psd:'jjj'}";
eval(x);
alert(y.name);
</script>
绝对可以像我那样用,因为是照录视频的老师做的,只是不知道那个小细节出了问题!
</script>
[/Quote]
{"sb":[{username:"zhangsna",password:"jkc126"}]}
$.get("test.do",null,function(data){
var obj = eval(data);
var objval = obj["sb"];
var username = objval.username;
alert(username);
不知道你的servlet是怎么配的,不过应该是test.do或者其他后缀吧
$.get("test",null,function(data){
var obj;
try {
obj = eval(data);
} catch (e){
obj = data;
}
var objval = obj["sb"];
var username = objval.username;
alert(username);
})
})
this
Object { type="GET", url="test", 更多...}
arguments
["{"sb":{username:"zhangsna",password:"jkc126"}}", "success"]
data
"{"sb":{username:"zhangsna",password:"jkc126"}}"
obj
undefined
objval
undefined
passwrod
undefined
data已经返回了信息,为什么在解析后就是得不到值呢?
<script type="text/javascript"> function parseJSON(data){
var JSON = eval(data);
alert(JSON["sb"]["username"]);
alert(JSON["sb"]["password"]);
}
window.onload=function(){
parseJSON("({\"sb\":{username:\"zhangsna\",password:\"jkc126\"}})");
}
</script>