Spring MVC —— 前后台传递JSON

Posted yifanSJ

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Spring MVC —— 前后台传递JSON相关的知识,希望对你有一定的参考价值。

1. 传递JSON参数

vardata = {‘id‘:1,‘name‘:‘abc‘};
$.ajax({
    type:‘post‘,
    url:‘homePageAction.do?testAJax‘,
    contentType:‘application/x-www-form-urlencoded‘,
    data:JSON.stringify(data),
    success:function(data){
        console.log(data.msg);
    },
    error:function(){
    }
});

Java代码:

@RequestMapping(params= "testAJax")
public voidtestAjax(@RequestParam String id,String name,HttpServletRequest req){
    Stringid2 = req.getParameter("id");
    Stringname2 = req.getParameter("name");
    System.out.println("1111");
}

2. 传递JSON对象或JSON数组(后台接收使用EventInfo[],而不是List<EventInfo> list)

vardata = [{‘id‘:1,‘name‘:‘abc‘},{‘id‘:2,‘name‘:‘def‘},{‘id‘:3,‘name‘:‘ghi‘}];
console.log(JSON.stringify(data));
$.ajax({
    type:‘post‘,
    url:‘homePageAction.do?testAJax‘,
    contentType:‘application/json‘,
    data:JSON.stringify(data),
    success:function(data){
        console.log(data.msg);
        console.log(data.obj.id);
        console.log(data.obj.name);
    },
    error:function(){
    }
});

Java:

@RequestMapping(params= "testAJax")
@ResponseBody
publicJSONObject testAjax(@RequestBody EventInfo[] ei,HttpServletRequest req){
    Longid1 = ei[0].getId();
    Stringname1 = ei[0].getName();
    JSONObjectjo = new JSONObject();
    jo.put("msg","return success");
    jo.put("obj",ei[0]);
    return jo;
}

3. 传递JSON数组,后台用List接收

前端Ajax传参数:

  [ "0866282192144020" ]

后端Spring方法接收参数:

@RequestParam("carnums[]") List<String> carnums

4. 后台返回前台JSON,需要在返回方法上加上@ResponseBoby,代表将JSON数据放到Http Boby中返回

返回值标识了@ResponseBody,SpringMVC将使用StringHttpMessageConverter的write()方法,将结果作为String值写入响应报文,当然,此时canWrite()方法返回true。

关于HttpMessageConverter和@RequestBody、@ResponseBody的关系请看我另一篇文章。

以上是关于Spring MVC —— 前后台传递JSON的主要内容,如果未能解决你的问题,请参考以下文章

js怎么获取从springmvc后台传过来的数据

如何将 Json 对象从 ajax 传递到 spring mvc 控制器?

Spring mvc 前后台通过json交互转

FineUI MVC 前端获取表格Json通过Post传递后台

spring mvc+ajax 实现json格式数据传递

spring mvc强制返回类型为json时怎么去除前后的双引号