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

SpringBoot處理JSON數(shù)據(jù)方法詳解

 更新時(shí)間:2022年10月28日 10:49:18   作者:showswoller  
這篇文章主要介紹了SpringBoot整合Web開發(fā)中Json數(shù)據(jù)處理,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

前言

在Spring Boot的Web應(yīng)用中 內(nèi)置了JSON數(shù)據(jù)的解析功能,默認(rèn)使用Jackson自動(dòng)完成解析(不需要解析加載Jackson依賴包)當(dāng)控制器返回一個(gè)Java對(duì)象或集合數(shù)據(jù)時(shí) Spring Boot自動(dòng)將其轉(zhuǎn)換成JSON數(shù)據(jù),使用起來很方便簡(jiǎn)潔。

Spring Boot處理JSON數(shù)據(jù)時(shí),需要用到兩個(gè)重要的JSON格式轉(zhuǎn)換注解,分別是@RquestBody

@ResponseBody 他們的作用分別如下

@RequestBody:用于將請(qǐng)求體中的數(shù)據(jù)綁定到方法的形參中,該注解應(yīng)用在方法的形參上

@ResponseBody:用于直接返回JSON對(duì)象 該注解應(yīng)用在方法上

下面通過一個(gè)實(shí)例講解Spring Boot處理JSON數(shù)據(jù)的過程,該實(shí)例針對(duì)返回實(shí)體對(duì)象,ArrayList集合,Map<String,Object>集合以及List<Map<String,Object>>集合分別處理

步驟如下

1、創(chuàng)建實(shí)體類

在應(yīng)用的com.ch.ch5_2.model包中 創(chuàng)建實(shí)體類Preson 代碼如下

package com.ch.ch5_2.model;
public class Preson {
	private String pname;
	private String password;
	private Integer page;
	public String getPname() {
		return pname;
	}
	public void setPname(String pname) {
		this.pname = pname;
	}
	public String getPassword() {
		return password;
	}
	public void setPassword(String password) {
		this.password = password;
	}
	public Integer getPage() {
		return page;
	}
	public void setPage(Integer page) {
		this.page = page;
	}
}

2、創(chuàng)建視圖頁(yè)面

在src/main/resources/templates目錄下 創(chuàng)建視圖頁(yè)面 input.html 并且引入jQuery框架 并使用它的ajax方法進(jìn)行異步請(qǐng)求 部分代碼如下(此處需要一些Java Web開發(fā)的知識(shí) 如有不明白的可以參考我之前的博客 進(jìn)主頁(yè)就有)

<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<link rel="stylesheet" th:href="@{css/bootstrap.min.css}" rel="external nofollow"  />
<!-- 默認(rèn)訪問 src/main/resources/static下的css文件夾-->
<link rel="stylesheet" th:href="@{css/bootstrap-theme.min.css}" rel="external nofollow"  />
<!-- 引入jQuery -->
<script type="text/javascript" th:src="@{js/jquery.min.js}"></script>
<script type="text/javascript">
	function testJson() {
		//獲取輸入的值pname為id
		var pname = $("#pname").val();
		var password = $("#password").val();
		var page = $("#page").val();
		alert(password);
		$.ajax({
			//發(fā)送請(qǐng)求的URL字符串
			url : "testJson",
			//定義回調(diào)響應(yīng)的數(shù)據(jù)格式為JSON字符串,該屬性可以省略
			dataType : "json",
			//請(qǐng)求類型
			type : "post",
			//定義發(fā)送請(qǐng)求的數(shù)據(jù)格式為JSON字符串
			contentType : "application/json",
			//data表示發(fā)送的數(shù)據(jù)
			data : JSON.stringify({pname:pname,password:password,page:page}),
			//成功響應(yīng)的結(jié)果
			success : function(data){
				if(data != null){
					//返回一個(gè)Person對(duì)象
					//alert("輸入的用戶名:" + data.pname + ",密碼:" + data.password + ",年齡:" +  data.page);
					//ArrayList<Person>對(duì)象
					/**for(var i = 0; i < data.length; i++){
						alert(data[i].pname);
					}**/
					//返回一個(gè)Map<String, Object>對(duì)象
					//alert(data.pname);//pname為key
					//返回一個(gè)List<Map<String, Object>>對(duì)象
					for(var i = 0; i < data.length; i++){
						alert(data[i].pname);
					}
				}
			},
			//請(qǐng)求出錯(cuò)
			error:function(){
				alert("數(shù)據(jù)發(fā)送失敗");
			}
		});
	}
</script>
</head>
hicon-pencil"></i>
							</span>
							<input class="form-control" type="text"
							 id="pname" th:placeholder="請(qǐng)輸入用戶名"/>
						</div>
					</div>
					<div class="form-group">
						<div class="input-group col-md-6">
							<span class="input-group-addon">
								<i class="glyphicon glyphicon-pencil"></i>
							</span>
							<input class="form-control" type="text"
							 id="password" th:placeholder="請(qǐng)輸入密碼"/>
						</div>
					</div>
					<div class="form-group">
						<div class="input-group col-md-6">
							<span class="input-group-addon">
								<i class="glyphicon glyphicon-pencil"></i>
							</span>
							<input class="form-control" type="text"
							 id="page" th:placeholder="請(qǐng)輸入年齡"/>
						</div>
					</div>
					<div class="form-group">
						<div class="col-md-6">
							<div class="btn-group btn-group-justified">
								<div class="btn-group">
									<button type="button" onclick="testJson()" class="btn btn-success">
										<span class="glyphicon glyphicon-share"></span>
										&nbsp;測(cè)試
									</button>
								</div>
							</div>
						</div>
					</div>
				</form>
			</div>
		</div>
	</div>
</body>
</html>

3、創(chuàng)建控制器

在ch5_2應(yīng)用的com.ch.ch5_2.controller包中 創(chuàng)建控制器類TestJsonController 在該類中有兩個(gè)處理方法,一個(gè)時(shí)界面導(dǎo)航方法,一個(gè)是接受頁(yè)面請(qǐng)求的方法 部分代碼如下

package com.test.ch3_2.controller;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import com.ch.ch5_2.model.Preson;
@Controller
public class TestJsonController {
	/**
	 * 進(jìn)入視圖頁(yè)面
	 */
	@RequestMapping("/input")
	public String input() {
		return "input";
	}
	/**
	 * 接收頁(yè)面請(qǐng)求的JSON數(shù)據(jù)
	 */
	@RequestMapping("/testJson")
	@ResponseBody
	/*@RestController注解相當(dāng)于@ResponseBody + @Controller合在一起的作用。
	1) 如果只是使用@RestController注解Controller,則Controller中的方法無法返回jsp頁(yè)面或者h(yuǎn)tml,
	返回的內(nèi)容就是Return的內(nèi)容。
	2) 如果需要返回到指定頁(yè)面,則需要用 @Controller注解。如果需要返回JSON,XML或自定義mediaType內(nèi)容到頁(yè)面,
	則需要在對(duì)應(yīng)的方法上加上@ResponseBody注解。
    */
	public List<Map<String, Object>> testJson(@RequestBody Preson user) {
		//打印接收的JSON格式數(shù)據(jù)
		System.out.println("pname=" + user.getPname() +
				", password=" + user.getPassword() + ",page=" + user.getPage());
		//返回Person對(duì)象
		Map<String, Object> map1 = new HashMap<String, Object>();
		map1.put("pname", "陳恒3");
		map1.put("password", "54321");
		map1.put("page", 55);
		allp.add(map1);
		return allp;
	}
}

然后運(yùn)行Ch52Application主類 然后訪問http://localhost:8080/ch5_2/input

運(yùn)行效果如下

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

相關(guān)文章

  • 淺析Java異常處理中斷言的使用

    淺析Java異常處理中斷言的使用

    這篇文章主要介紹了Java異常處理中斷言的使用,是Java入門學(xué)習(xí)中的基礎(chǔ)知識(shí),需要的朋友可以參考下
    2015-09-09
  • 簡(jiǎn)單介紹Java?方法的重載、可變參數(shù)、作用域

    簡(jiǎn)單介紹Java?方法的重載、可變參數(shù)、作用域

    這篇文章主要簡(jiǎn)單介紹Java?方法的重載、可變參數(shù)、作用域的相關(guān)資料,需要的朋友可以參考下
    2023-07-07
  • Java 處理超大數(shù)類型之BigInteger案例詳解

    Java 處理超大數(shù)類型之BigInteger案例詳解

    這篇文章主要介紹了Java 處理超大數(shù)類型之BigInteger案例詳解,本篇文章通過簡(jiǎn)要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下
    2021-09-09
  • Spring boot項(xiàng)目打包成jar運(yùn)行的二種方法

    Spring boot項(xiàng)目打包成jar運(yùn)行的二種方法

    這篇文章主要給大家介紹了關(guān)于Spring boot項(xiàng)目打包成jar運(yùn)行的二種方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用spring boot具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2018-11-11
  • IDEA中Spring Initializr沒有Java8選項(xiàng)的解決辦法

    IDEA中Spring Initializr沒有Java8選項(xiàng)的解決辦法

    在使用IDEA中的Spring Initializr創(chuàng)建新項(xiàng)目時(shí),Java 版本近可選擇Java17,21 ,不能選擇Java8;SpringBoot 版本也只有 3.x,所以本文給大家介紹了IDEA中Spring Initializr沒有Java8選項(xiàng)的解決辦法,需要的朋友可以參考下
    2024-06-06
  • 通過實(shí)例解析Java分布式鎖三種實(shí)現(xiàn)方法

    通過實(shí)例解析Java分布式鎖三種實(shí)現(xiàn)方法

    這篇文章主要介紹了通過實(shí)例解析Java分布式鎖三種實(shí)現(xiàn)方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-07-07
  • 微信小程序中的openid的作用詳解

    微信小程序中的openid的作用詳解

    微信小程序作為連接用戶與服務(wù)的重要橋梁,在提升用戶體驗(yàn)方面發(fā)揮著重要作用,本文章將詳細(xì)探討openid在微信小程序中的作用及其重要性,幫助開發(fā)者更好地理解和利用這一功能,優(yōu)化應(yīng)用體驗(yàn)并增強(qiáng)安全性,感興趣的朋友一起看看吧
    2025-04-04
  • 簡(jiǎn)述Java中throw-throws異常拋出

    簡(jiǎn)述Java中throw-throws異常拋出

    任何Java代碼都可以拋出異常,本文主要介紹了Java中throw-throws異常拋出,具有一定的參考價(jià)值,感興趣的可以了解一下
    2021-08-08
  • java用list集合存儲(chǔ)學(xué)生信息并算出成績(jī)平均值操作

    java用list集合存儲(chǔ)學(xué)生信息并算出成績(jī)平均值操作

    這篇文章主要介紹了java用list集合存儲(chǔ)學(xué)生信息并算出成績(jī)平均值操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2020-08-08
  • SpringBoot打Jar包在命令行運(yùn)行流程詳解

    SpringBoot打Jar包在命令行運(yùn)行流程詳解

    這篇文章主要介紹了SpringBoot打Jar包在命令行運(yùn)行流程詳解,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-09-09

最新評(píng)論

祁连县| 双牌县| 曲麻莱县| 红安县| 祁连县| 通辽市| 壶关县| 杭州市| 吉木乃县| 乌拉特中旗| 永定县| 象州县| 遂平县| 名山县| 沅江市| 介休市| 囊谦县| 徐闻县| 临江市| 汽车| 城固县| 绵竹市| 云和县| 西贡区| 湖南省| 尼玛县| 仙桃市| 杂多县| 灵寿县| 临武县| 六盘水市| 泸定县| 陈巴尔虎旗| 额尔古纳市| 呈贡县| 山阳县| 莲花县| 内乡县| 平凉市| 白城市| 利辛县|