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

前言:

這部分需要額外導入jackson-databindjackson-corejackson-annotations這三個包。
主要使用的註解是@RequestBody@ResponseBody這兩個註解。@RequestBody註解默認接收JSON字符串,springmvc會調用相應的轉換器將封裝到指定的對象中,然後綁定到controller方法的參數上。加上@ResponseBody註解後,方法所返回的對象不會再被視圖解析器處理,而是被轉換成json數據寫入到response的body當中。

示例:

pom.xml加入依賴

      <dependency>
        <groupId>com.fasterxml.jackson.core</groupId>
        <artifactId>jackson-databind</artifactId>
        <version>2.10.1</version>
      </dependency>
      <dependency>
        <groupId>com.fasterxml.jackson.core</groupId>
        <artifactId>jackson-core</artifactId>
        <version>2.10.1</version>
      </dependency>
      <dependency>
        <groupId>com.fasterxml.jackson.core</groupId>
          <artifactId>jackson-annotations</artifactId>
        <version>2.10.1</version>
      </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方法的參數接收集合,數組等數據類型可以移步這篇博客

發佈了46 篇原創文章 · 獲贊 1 · 訪問量 2506
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章