欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Spring?MVC基于注解的使用之JSON數據處理的方法

 更新時間:2022年05月18日 10:01:15   作者:郭尕  
這篇文章主要介紹了Spring?MVC基于注解的使用JSON數據處理,json是一種輕量級的數據交換格式,是一種理想的數據交互語言,它易于閱讀和編寫,同時也易于機器解析和生成,本文通過實例代碼給大家介紹的非常詳細,需要的朋友可以參考下

1.JSON數據交互

1.1 JSON概述

JSON 是一種輕量級的數據交換格式,是一種理想的數據交互語言,它易于閱讀和編寫,同時也易于機器解析和生成。
JSON有兩種數據結構:

  • 對象結構
  • 數組結構

1.1.1 對象結構

對象結構是由花括號括起來的逗號分割的鍵值對(key:value)構成。

對象結構的語法格式是:
{ "key1 ":"value 1", "key2 ":value 2, "key3 ":value 3}

注意:

key 必須是字符串,value 可以是字符串, 數字, 對象, 數組, 布爾值或 null。

key 和 value 中使用冒號(:)分割。

每個 key/value 對使用逗號(,)分割。

1.1.2 數組結構

數組結構是由中括號包裹逗號分隔的值的列表組成。

數組結構的語法格式是:

[ "value1","value2","value3" ]

注意:JSON 中數組值必須是字符串, 數字, 對象, 數組, 布爾值或 null。

java轉換為json 的過程一般會稱為 “序列化”
json轉換為java 的過程一般會稱為 “反序列化”
json的屬和字符串值必須要用雙引號 “” 不能用單引

1.2 JSON數據轉換

為實現瀏覽器與控制器類之間的數據交互,Spring提供了一個HttpMessageConverter接口來實現該工作。Spring為HttpMessageConverter接口提供了很多實現類,來對不同類型的數據進行信息轉換。而Spring MVC 默認處理JSON格式請求響應的實現類是MappingJackson2HttpMessageConverter,使用此類對數據進行轉換。

數據轉換操作步驟:

導入jackson依賴

<dependency>
    <groupId>com.fasterxml.jackson.core</groupId>
    <artifactId>jackson-databind</artifactId>
    <version>2.13.2.2</version>
</dependency>

在SpringMVC的核心配置文件中開啟mvc的注解驅動,此時在HandlerAdaptor中會自動裝配一個消息轉換器:MappingJackson2HttpMessageConverter,可以將響應到瀏覽器的Java對象轉換為Json格式的字符串

<mvc:annotation-driven/>
<mvc:default-servlet-handler/>

創(chuàng)建一個User類,用于封裝User類型的請求參數

public class User {
    private Integer id;
    private String username;
    private String password;
    public User() {
    }
    public User(Integer id, String username, String password) {
        this.id = id;
        this.username = username;
        this.password = password;
    }
    public Integer getId() {
        return id;
    }
    public void setId(Integer id) {
        this.id = id;
    }
    public String getUsername() {
        return username;
    }
    public void setUsername(String username) {
        this.username = username;
    }
    public String getPassword() {
        return password;
    }
    public void setPassword(String password) {
        this.password = password;
    }
}

在控制器方法上使用@ResponseBody注解進行標識

@RequestMapping("/testJson")
@ResponseBody
public User testJson(){
    return new User(001,"jack","123456");
}

將Java對象直接作為控制器方法的返回值返回,就會自動轉換為json格式的字符串

在這里插入圖片描述

2. HttpMessageConverter

HttpMessageConverter,報文信息轉換器,將請求報文轉換為Java對象,或將Java對象轉換為響應報文。
HttpMessageConverter提供了兩個注解@RequestBody和@ResponseBody,在JSON格式轉換中也是非常重要的。

2.1 @RequestBody

@RequestBody 可以獲取請求體,需要在控制器方法設置一個形參,使用@RequestBody進行標識,就會將請求體中的數據綁定到方法的形參中。

@RequestMapping("/testRequestBody")
    public String testRequestBody(@RequestBody String requestBody){
        System.out.println("requestBody:" + requestBody);
        return "success";
    }

表單提交:

<form action="${pageContext.request.contextPath}/testRequestBody" method="post">
    用戶名:<input type="text" name="username"><br>
    密碼:<input type="password" name="password"><br>
    <input type="submit" value="測試"><br>
</form>

返回結果:requestBody:username=abc&password=123

2.2 @ResponseBody

@ResponseBody 標識當前的控制器方法,直接將該方法的返回值作為響應報文的響應體響應到瀏覽器

@RequestMapping("/testResponseBody")
    @ResponseBody
    public String testResponseBody(){
        return "success";
    }

通過超鏈接測試:

<a href="${pageContext.request.contextPath}/testResponseBody">測試testResponseBody</a>

在這里插入圖片描述

到此這篇關于Spring MVC基于注解的使用JSON數據處理的文章就介紹到這了,更多相關Spring MVC JSON數據處理內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • 淺析java修飾符訪問權限(動力節(jié)點Java學院整理)

    淺析java修飾符訪問權限(動力節(jié)點Java學院整理)

    Java有四種訪問權限,其中三種有訪問權限修飾符,分別為private,public和protected,還有一種不帶任何修飾符,下面通過本文給大家簡單介紹下java修飾符訪問權限相關知識,感興趣的朋友一起學習吧
    2017-04-04
  • IntelliJ IDEA(2017)安裝和破解的方法

    IntelliJ IDEA(2017)安裝和破解的方法

    這篇文章主要介紹了IntelliJ IDEA(2017)安裝和破解的方法,小編覺得挺不錯的,現在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-11-11
  • 一文搞懂Java中的序列化與反序列化

    一文搞懂Java中的序列化與反序列化

    序列化是將對象轉換成二進制字節(jié)流的過程;反序列化是從二進制字節(jié)流中恢復對象的過程。文中降通過示例詳解二者的使用與區(qū)別,需要的可以參考一下
    2022-08-08
  • 導入項目出現Java多個工程相互引用異常A cycle was detected in the build path of project的解決辦法

    導入項目出現Java多個工程相互引用異常A cycle was detected in the build path o

    今天小編就為大家分享一篇關于導入項目出現Java多個工程相互引用異常A cycle was detected in the build path of project的解決辦法,小編覺得內容挺不錯的,現在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2018-12-12
  • Java數據結構之雙端鏈表原理與實現方法

    Java數據結構之雙端鏈表原理與實現方法

    這篇文章主要介紹了Java數據結構之雙端鏈表原理與實現方法,簡單描述了雙端鏈表的概念、原理并結合實例形式分析了java實現雙端鏈表的相關操作技巧,需要的朋友可以參考下
    2017-10-10
  • 基于SpringBoot與Mybatis實現SpringMVC Web項目

    基于SpringBoot與Mybatis實現SpringMVC Web項目

    這篇文章主要介紹了基于SpringBoot與Mybatis實現SpringMVC Web項目的相關資料,需要的朋友可以參考下
    2017-04-04
  • Java的NIO之并發(fā)環(huán)境下非阻塞IO技術詳解

    Java的NIO之并發(fā)環(huán)境下非阻塞IO技術詳解

    這篇文章主要介紹了Java的NIO之并發(fā)環(huán)境下非阻塞IO技術詳解,Java NIO(New IO)是Java平臺提供的一種用于高效處理I/O操作的API,它引入了一組新的類和概念,以提供更好的性能和可擴展性,需要的朋友可以參考下
    2023-09-09
  • eclipse中自動生成javadoc文檔的方法

    eclipse中自動生成javadoc文檔的方法

    這篇文章主要介紹了eclipse中自動生成javadoc文檔的方法,是實用eclipse開發(fā)Java程序時非常實用的技巧,對于進行Java項目開發(fā)具有一定的參考借鑒價值,需要的朋友可以參考下
    2014-12-12
  • Java 訪問剪切板(復制,粘貼)的示例

    Java 訪問剪切板(復制,粘貼)的示例

    這篇文章主要介紹了Java 訪問剪切板(復制,粘貼)的示例,幫助大家更好的理解和使用Java,感興趣的朋友可以了解下
    2020-11-11
  • Spring中Bean的創(chuàng)建流程詳細解讀

    Spring中Bean的創(chuàng)建流程詳細解讀

    這篇文章主要介紹了Spring中Bean的創(chuàng)建流程詳細解讀,Spring 中創(chuàng)建 Bean ,是通過調用 GetBean 方法來觸發(fā)的,所以,我們會從這個方法開始,需要的朋友可以參考下
    2023-10-10

最新評論