后端返回数据,前端接收Json数组处理办法

方法一:使用HttpServletResponse的方法

Controller层

@RequestMapping(value = "/queryCategory", method = RequestMethod.POST)
public void queryCategory(HttpServletResponse resp) throws Exception {
     List<Category> categories = categoryService.queryCategory();
     String str = JSON.toJSONString(categories);
     System.out.println(str);
     resp.getWriter().write(str);
    }

view层

$("#cid").click(function () {
  $.ajax({
			url:"/user/queryCategory",
        	type:"get",
        	success:function (res) {
        	//需要以下两种方法转化成json对象,因为从后端传过来的只是字符串
            res=eval("("+res+")");
        	//res=JSON.parse(res)
      		for (var i=0;i<res.length;i++){
        	$("#cid").append("+res[i].cname+"")
         	}
        },
        error:function(){
        alert("error")
        }
    });
 })

方法二:Spring框架下使用ResponseBody

Controller

@RequestMapping(value = "/queryCategory", method = RequestMethod.POST)
@ResponseBody  //当此注释标注在方法上,则方法返回的结果直接转化成json格式
public List<Category> queryCategory() throws Exception {
    List<Category> categories = categoryService.queryCategory();
    return categories;
}

view层

//表示当整个文档被加载时就执行此函数,且只执行一次
$(function () {
      $.ajax({
      url: "${pageContext.request.contextPath}/category/queryCategory",
      method: "post",
      success: function (res) {
      //无需转换格式,因为传过来的就是json对象
      for (var i = 0; i < res.length; i++) {
           var option = " + res[i].cname + "";
           $("#cid").append(option);
           }
            },
      error: function () {
      alert("ajax请求错误")
      }
   })
});

你可能感兴趣的:(后端返回数据,前端接收Json数组处理办法)