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

SpringBoot如何接收前端傳來(lái)的json數(shù)據(jù)

 更新時(shí)間:2023年04月04日 15:16:08   作者:IT__learning  
這篇文章主要介紹了SpringBoot如何接收前端傳來(lái)的json數(shù)據(jù)問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

SpringBoot接收前端傳來(lái)的json數(shù)據(jù)

當(dāng)前端傳來(lái)json數(shù)據(jù)時(shí),后端有兩種方式可以接收:使用POJO和Map進(jìn)行接收。

前端json數(shù)據(jù):

{
?? ?id:121, ? ? ?//數(shù)字
?? ?name:"lhj", ? ? //字符串
?? ?scoreList:[ ? ? //對(duì)象
?? ??? ??? ??? ?{Java:95}, ?
?? ??? ??? ??? ?{Python:98},
?? ??? ??? ??? ?{C++:94}
?? ??? ??? ??? ?]
?? ??? ?}

使用POJO

若前端傳遞過(guò)來(lái)的數(shù)據(jù)剛好和我們的bean實(shí)體對(duì)象屬性一致,則可以使用對(duì)象的形式接收。

后端實(shí)體類(lèi)

@Component
public class Score {
? ? private int id;
? ? private String name;
? ? private List<ScoreList> scoreList;
}

后端Controller

@PostMapping("/student/score")
public void getScore(@RequestBody Score score){
?? ?System.out.println(score);
? ? }
  • 前端數(shù)據(jù)和bean對(duì)象屬性要一致
  • 必須使用@RequestBody注解

使用Map接收

若前端傳遞過(guò)來(lái)的數(shù)據(jù)很復(fù)雜,沒(méi)有對(duì)應(yīng)的POJO與其對(duì)應(yīng),就可以用Map進(jìn)行接收。

后臺(tái)Controller

@PostMapping("/lhj/getdata")
public void getData(@RequestBody Map<String,Object>map){
?? ?System.out.println(map);
? ? }

對(duì)于Map<String,Object>,值的類(lèi)型建議設(shè)置為Object,這樣可以使Map能接收各種類(lèi)型的數(shù)據(jù),如字符串、數(shù)字、數(shù)組和對(duì)象等。

使用POJO和Map接收的比較

1、map的優(yōu)點(diǎn):

  • 靈活性更強(qiáng),易擴(kuò)展,耦合度低;
  • 代碼簡(jiǎn)潔;
  • MyBatis查詢(xún)的返回結(jié)果本身就是Map,效率可能會(huì)比返回JavaBean高。

2、map的缺點(diǎn)

  • JavaBean的數(shù)據(jù)在編譯期就會(huì)對(duì)其進(jìn)行校驗(yàn),如果出錯(cuò)會(huì)直接提示。而Map的數(shù)據(jù)則需要到sql層才會(huì)進(jìn)行處理檢驗(yàn)。因此如果map的參數(shù)名稱(chēng)寫(xiě)錯(cuò)、參數(shù)值如果多傳亂傳只能到sql層才會(huì)被發(fā)現(xiàn)。
  • Map中所擁有的參數(shù)個(gè)數(shù)、類(lèi)型、每個(gè)參數(shù)代表的含義對(duì)外不透明,團(tuán)隊(duì)開(kāi)發(fā)及后期維護(hù)難度大

3、JavaBean的優(yōu)點(diǎn):

  • 面向?qū)ο蟮牧己迷忈專(zhuān)?/li>
  • 數(shù)據(jù)結(jié)構(gòu)清晰,便于團(tuán)隊(duì)開(kāi)發(fā)和后期維護(hù);
  • 代碼足夠健壯,可以排除掉編譯期錯(cuò)誤;

4、javabean的缺點(diǎn):

  • 代碼量增多,大量時(shí)間去封裝用到的表對(duì)象。
  • 可能會(huì)影響開(kāi)發(fā)效率。

PO和VO相結(jié)合

  • 創(chuàng)建PO與數(shù)據(jù)庫(kù)字段對(duì)應(yīng),用于對(duì)數(shù)據(jù)庫(kù)的操作;
  • 創(chuàng)建VO用于封裝和前端打交道的數(shù)據(jù),使用VO可以避免使用Map

SpringBoot接收json入?yún)?/h2>

最近做一個(gè)項(xiàng)目,給前端vue工程提供數(shù)據(jù)接口,部門(mén)經(jīng)理希望通過(guò)json格式來(lái)傳遞參數(shù)。

接口項(xiàng)目是用的springboot,所以直接使用controller里配置的path就能訪問(wèn)到對(duì)應(yīng)的方法

示例如下:

vue調(diào)用的方法如下,可見(jiàn)我們傳了2個(gè)參數(shù),一個(gè)configid,一個(gè)configname

//通過(guò)json傳參
var url=“http://localhost/jsonparam”;
var sendData={“configid”:55,
“configname”:“000”
};
this.$http.jsonp(url,{params : sendData}).then(function (res) {
this.msg=res.data.configName;
});

服務(wù)接口端代碼:

controller方法中,入?yún)⑶凹覢RequestParam 注解 ,value和前端傳的json字段對(duì)應(yīng)上

@RequestMapping(value="/jsonparam", method = RequestMethod.GET,produces="application/json;charset=UTF-8")
public ? ConfigVo getjsonpparam(@RequestParam(value="configid",required=true) ?Long id,@RequestParam(value="configname",required=true) String name) {
? ? ConfigVo vo = service.getConfigById(id); ??
? ? return vo;
}

這樣使用,就能接收前臺(tái)傳來(lái)的json參數(shù)。

總結(jié)

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • 實(shí)例解析Java程序中正則表達(dá)式的貪婪模式匹配

    實(shí)例解析Java程序中正則表達(dá)式的貪婪模式匹配

    貪婪模式又叫最大匹配,X?、X*、X+、X{n,}都是最大匹配,例如你要用“<.+>”去匹配“a<tr>aava </tr>abb”,也許你所期待的結(jié)果是想匹配“<tr>”,但是實(shí)際結(jié)果卻會(huì)匹配到“<tr>aava </tr>”,下面我們就來(lái)看具體看一下貪婪模式的使用.
    2016-05-05
  • JSON的String字符串與Java的List列表對(duì)象的相互轉(zhuǎn)換

    JSON的String字符串與Java的List列表對(duì)象的相互轉(zhuǎn)換

    這篇文章主要介紹了JSON的String字符串與Java的List列表對(duì)象的相互轉(zhuǎn)換,如果在瀏覽器端JSON是list則轉(zhuǎn)為string結(jié)構(gòu)來(lái)處理,需要的朋友可以參考下
    2016-04-04
  • 詳解Java中的鎖Lock和synchronized

    詳解Java中的鎖Lock和synchronized

    鎖是Java并發(fā)編程中最重要的同步機(jī)制,Java提供了種類(lèi)豐富的鎖,每種鎖因其特性的不同,在適當(dāng)?shù)膱?chǎng)景下能夠展現(xiàn)出非常高的效率。本文將詳細(xì)介紹Lock和synchronized
    2021-06-06
  • Java線(xiàn)程關(guān)閉的3種方法

    Java線(xiàn)程關(guān)閉的3種方法

    這篇文章介紹了Java線(xiàn)程關(guān)閉的3種方法,有需要的朋友可以參考一下
    2013-10-10
  • Java  匿名內(nèi)部類(lèi)詳解及實(shí)例代碼

    Java 匿名內(nèi)部類(lèi)詳解及實(shí)例代碼

    這篇文章主要介紹了Java 匿名內(nèi)部類(lèi)詳解及實(shí)例代碼的相關(guān)資料,需要的朋友可以參考下
    2017-02-02
  • Spring Boot集成Druid查看配置是否生效的方法

    Spring Boot集成Druid查看配置是否生效的方法

    本文主要介紹了Spring Boot集成Druid查看配置是否生效的方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-06-06
  • springIOC的使用流程及spring中使用類(lèi)型轉(zhuǎn)換器的方式

    springIOC的使用流程及spring中使用類(lèi)型轉(zhuǎn)換器的方式

    Spring IOC是Spring框架的核心原理之一,它是一種軟件設(shè)計(jì)模式,用于管理應(yīng)用程序中的對(duì)象依賴(lài)關(guān)系,這篇文章主要介紹了springIOC的使用流程以及spring中如何使用類(lèi)型轉(zhuǎn)換器,需要的朋友可以參考下
    2023-06-06
  • Spring的@RequestParam對(duì)象綁定方式

    Spring的@RequestParam對(duì)象綁定方式

    這篇文章主要介紹了Spring的@RequestParam對(duì)象綁定方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-10-10
  • springboot restTemplate連接池整合方式

    springboot restTemplate連接池整合方式

    這篇文章主要介紹了springboot restTemplate連接池整合方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-10-10
  • 詳解Mybatis框架SQL防注入指南

    詳解Mybatis框架SQL防注入指南

    這篇文章主要介紹了詳解Mybatis框架SQL防注入指南,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-07-07

最新評(píng)論