最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

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

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

1.1 JSON概述

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

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

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

對(duì)象結(jié)構(gòu)是由花括號(hào)括起來(lái)的逗號(hào)分割的鍵值對(duì)(key:value)構(gòu)成。

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

注意:

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

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

每個(gè) key/value 對(duì)使用逗號(hào)(,)分割。

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

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

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

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

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

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

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

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

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

導(dǎo)入jackson依賴

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

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

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

創(chuàng)建一個(gè)User類,用于封裝User類型的請(qǐng)求參數(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注解進(jìn)行標(biāo)識(shí)

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

將Java對(duì)象直接作為控制器方法的返回值返回,就會(huì)自動(dòng)轉(zhuǎn)換為json格式的字符串

在這里插入圖片描述

2. HttpMessageConverter

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

2.1 @RequestBody

@RequestBody 可以獲取請(qǐng)求體,需要在控制器方法設(shè)置一個(gè)形參,使用@RequestBody進(jìn)行標(biāo)識(shí),就會(huì)將請(qǐng)求體中的數(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="測(cè)試"><br>
</form>

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

2.2 @ResponseBody

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

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

通過(guò)超鏈接測(cè)試:

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

在這里插入圖片描述

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

相關(guān)文章

最新評(píng)論

衡南县| 体育| 琼海市| 广丰县| 积石山| 杨浦区| 金湖县| 新野县| 通化市| 金门县| 江陵县| 民勤县| 靖州| 吉水县| 聊城市| 宜良县| 溧阳市| 潞城市| 霞浦县| 新平| 漳州市| 广饶县| 义乌市| 合川市| 临朐县| 托克逊县| 霍山县| 长兴县| 黄大仙区| 同仁县| 旬阳县| 防城港市| 闽清县| 若尔盖县| 清涧县| 墨竹工卡县| 辰溪县| 十堰市| 江门市| 和静县| 金川县|