亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Spring?MVC基于注解的使用之JSON數(shù)據(jù)處理的方法

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

1.JSON數(shù)據(jù)交互

1.1 JSON概述

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

  • 對象結(jié)構(gòu)
  • 數(shù)組結(jié)構(gòu)

1.1.1 對象結(jié)構(gòu)

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

對象結(jié)構(gòu)的語法格式是:
{ "key1 ":"value 1", "key2 ":value 2, "key3 ":value 3}

注意:

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

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

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

1.1.2 數(shù)組結(jié)構(gòu)

數(shù)組結(jié)構(gòu)是由中括號包裹逗號分隔的值的列表組成。

數(shù)組結(jié)構(gòu)的語法格式是:

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

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

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

1.2 JSON數(shù)據(jù)轉(zhuǎn)換

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

數(shù)據(jù)轉(zhuǎn)換操作步驟:

導入jackson依賴

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

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

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

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

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對象直接作為控制器方法的返回值返回,就會自動轉(zhuǎn)換為json格式的字符串

在這里插入圖片描述

2. HttpMessageConverter

HttpMessageConverter,報文信息轉(zhuǎn)換器,將請求報文轉(zhuǎn)換為Java對象,或?qū)ava對象轉(zhuǎn)換為響應(yīng)報文。
HttpMessageConverter提供了兩個注解@RequestBody和@ResponseBody,在JSON格式轉(zhuǎn)換中也是非常重要的。

2.1 @RequestBody

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

@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>

返回結(jié)果:requestBody:username=abc&password=123

2.2 @ResponseBody

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

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

通過超鏈接測試:

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

在這里插入圖片描述

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

相關(guān)文章

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

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

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

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

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

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

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

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

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

    Java數(shù)據(jù)結(jié)構(gòu)之雙端鏈表原理與實現(xiàn)方法

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

    基于SpringBoot與Mybatis實現(xiàn)SpringMVC Web項目

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

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

    這篇文章主要介紹了Java的NIO之并發(fā)環(huán)境下非阻塞IO技術(shù)詳解,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 ,是通過調(diào)用 GetBean 方法來觸發(fā)的,所以,我們會從這個方法開始,需要的朋友可以參考下
    2023-10-10

最新評論