Spring MVC接收和返回JSON数据

  当页面提交请求时,提交的数据的编码格式由请求头的contentType指定,SpringMVC根据指定的编码格式对请求提交的数据进行处理。SpringMVC 为方法提供了一些很容易使用的注解来处理请求提交的数据。

ContentType指定的类型,可以分以下几种:

  • application/x-www-form-urlencoded:发请求的默认类型,可使用 @RequestParam, @ModelAttribute, @RequestBody 来处理。
  • multipart/form-data:@RequestBody 不能处理这种格式数据。
  • application/json,application/xml:必须使用 @RequestBody 来处理。

实际开发中,**@RequestBody**可以很方便地接收JSON格式数据,并转换成对应的数据类型绑定到方法属性上。

接收和返回JSON数据

SpringMVC在接收和返回JSON数据的处理上是很方便的,太基础了。

  1. 接收JSON数据
    form表单提交,js的get/post提交的 json 格式数据,只要数据属性类型和名称与后台方法接收形参类型和名称相同就会自动将请求提交的数据绑定在方法属性上;或与方法接收的对象的属性类型和名称相同,会自动将数据绑定到对象的属性上。
  2. 返回JSON数据
  • 使用注解:@RequestBody
      在 Controller 方法上使用 @RequestBody 注解,将自动进行数据转换为JSON格式返回。
  • 使用默认的json 工具包
      使用SpringMVC默认提供的jackson
    1
    2
    3
    4
    5
    6
    7
    8
    9
    @RequestMapping(value = "/ajaxUser")
    public void returnUser(User user, HttpServletResponse response) throws IOException {
    ObjectMapper objMapper = new ObjectMapper();
    user.setAge(22);
    //将对象转换成json
    response.setContentType("text/html;charset=UTF-8");
    String userJson = objMapper.writeValueAsString(user);
    response.getWriter().println(userJson);
    }
      使用第三方** json **工具:fastjson
作者

光星

发布于

2018-01-14

更新于

2022-06-17

许可协议

评论