您的位置:首页 > Web前端 > JQuery

jQuery调用ajax返回json对象

2017-09-07 22:42 561 查看
$.get(url,[data],[fn],[type])跟$.post差不多,就以get为例子说明一下:

前端代码:(只能用each来遍历刚得到的json对象数组)

$("#link").click(function(){
//前提是一定要得到json格式的字符串
$.get("${pageContext.request.contextPath}/jsonServlet",
function(result){
//用这种方法来遍历返回数据中的对象
var result1 = $.parseJSON(result);
$.each(result1,function(index,obj){
//这种是直接获取obj中的属性和值
$.each(obj,function(prop,val){
console.log(prop+":"+val);
});
//这种是获取obj中的属性,再通过属性找到对应的值
for(prop in obj){
console.log(prop+":"+obj[prop]);
}
});

//尝试用for来遍历,但是不成功,得到的是下标
/* for(obj in result){
for(prop in obj){
console.log(prop+":"+obj[prop]);
}
} */
});
});

对应的jsonServlet中是这样的处理:
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//response.setContentType("application/json;chartset=utf-8");
User user1 = new User("andy",12);
User user2 = new User("jack",22);
List<User> list = new ArrayList<>();
list.add(user2);
4000

list.add(user1);
Gson gson = new Gson();
String json = gson.toJson(list);
PrintWriter writer = response.getWriter();
writer.print(json);
writer.close();
}

注意:如果使用了setContentType来设置返回数据的内容类型,则前端返回的数据就是json对象,所以不可以再在前端的回调函数中使用$.parseJSON()来将返回回来的result转换成json对象,因为本身result就已经是json对象,不是字符串,但这样的设置只在jQuery中生效,在JavaScript中好像不起作用,起码我在测试的时候不能得到json类型字符串
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐