Spring MVC|JSON的序列化和反序列化

前言:

这部分需要额外导入jackson-databindjackson-corejackson-annotations这三个包。
主要使用的注解是@RequestBody@ResponseBody这两个注解。@RequestBody注解默认接收JSON字符串,springmvc会调用相应的转换器将封装到指定的对象中,然后绑定到controller方法的参数上。加上@ResponseBody注解后,方法所返回的对象不会再被视图解析器处理,而是被转换成json数据写入到response的body当中。

示例:

pom.xml加入依赖

      <dependency>
        <groupId>com.fasterxml.jackson.coregroupId>
        <artifactId>jackson-databindartifactId>
        <version>2.10.1version>
      dependency>
      <dependency>
        <groupId>com.fasterxml.jackson.coregroupId>
        <artifactId>jackson-coreartifactId>
        <version>2.10.1version>
      dependency>
      <dependency>
        <groupId>com.fasterxml.jackson.coregroupId>
          <artifactId>jackson-annotationsartifactId>
        <version>2.10.1version>
      dependency>

JS代码:

            $.ajax({
                type:"POST",//必须为POST,POST方法才会有请求体
                url:"user/ajaxTest",
                //必须告知springmvc请求体中的数据为JSON字符串,不然无法转换
                contentType:"application/json;charset=UTF-8",
                data:'{"username":"张三","password":"1234","age":22}',
                dataType:"json",
                success:function (data) {
                   alert(data.username);
                   alert(data.password);
                   alert(data.age);
                }
            });

Controller:

    @RequestMapping("/ajaxTest")
    @ResponseBody
    public User testAjax(@RequestBody User user) {
        user.setUsername("李四");
        return user;
    }

注:上述仅仅用于演示ajax请求发送json以及接收json的简单操作。如果想要在controller方法的参数接收集合,数组等数据类型可以移步这篇博客。

你可能感兴趣的:(#,Spring,Framework)