1. 程式人生 > >SpringMVC中controller返回json數據的兩種方法

SpringMVC中controller返回json數據的兩種方法

rac new enter req imp 工具 response 返回 basepath

SpringMVC中controller返回json數據的兩種方法

1.jsp的ajax請求:

function getJson(){
    $.ajax({
        type:"get",
        dataType:"json",
        url:"<%=basePath %>getJson",
        success:function(data){
            for(var i=0;i<jsonData.length;i++){
                alert("Id:"+data[i].id+"   username:"+data[i].username);
            }
        },
    error:function(e){
      alert(e);
   } }) }

2.方法一:

使用springmvc原生註解@ResponseBody

    @ResponseBody
    @RequestMapping("/getJson")
    public Object getJson(){
        return new Object();
    }

註意:

[email protected]的作用:將目標方法的返回值自動轉換成json格式,然後返回給前端

3.方法二:

使用手動寫的json工具類

    @RequestMapping("/getJson")
    public void getJson(HttpServletResponse response){
     Object obj = new Object();
  JSONObject json = JSONObject.fromObject(obj); JsonUtils.ajaxJson(json.toString(), response); }

附上JsonUtils工具類的代碼:

import java.io.IOException;

import javax.servlet.http.HttpServletResponse;

public class JsonUtils {
    public static void ajaxJson(String jsonString,HttpServletResponse response) {
        ajax(jsonString, 
"application/json",response); } public static void ajax(String content, String type,HttpServletResponse response) { try { response.setContentType(type + ";charset=UTF-8"); response.setHeader("Pragma", "No-cache"); response.setHeader("Cache-Control", "no-cache"); response.setDateHeader("Expires", 0); response.getWriter().write(content); response.getWriter().flush(); } catch (IOException e) { e.printStackTrace(); } } }

SpringMVC中controller返回json數據的兩種方法