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

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

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

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

當前端傳來json數(shù)據(jù)時,后端有兩種方式可以接收:使用POJO和Map進行接收。

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

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

使用POJO

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

后端實體類

@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對象屬性要一致
  • 必須使用@RequestBody注解

使用Map接收

若前端傳遞過來的數(shù)據(jù)很復雜,沒有對應的POJO與其對應,就可以用Map進行接收。

后臺Controller

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

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

使用POJO和Map接收的比較

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

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

2、map的缺點

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

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

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

4、javabean的缺點:

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

PO和VO相結(jié)合

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

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

最近做一個項目,給前端vue工程提供數(shù)據(jù)接口,部門經(jīng)理希望通過json格式來傳遞參數(shù)。

接口項目是用的springboot,所以直接使用controller里配置的path就能訪問到對應的方法

示例如下:

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

//通過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;
});

服務接口端代碼:

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

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

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

總結(jié)

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

相關文章

  • springboot中實現(xiàn)通過后臺創(chuàng)建臨時表

    springboot中實現(xiàn)通過后臺創(chuàng)建臨時表

    這篇文章主要介紹了springboot中實現(xiàn)通過后臺創(chuàng)建臨時表操作,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-07-07
  • springboot使用@value讀取配置的方法

    springboot使用@value讀取配置的方法

    今天我們來講一下如何通過python來實現(xiàn)自動登陸京東,以及簽到領取金幣。本文圖文實例相結(jié)合給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友參考下吧
    2019-10-10
  • java數(shù)據(jù)庫數(shù)據(jù)分批讀取的實現(xiàn)示例

    java數(shù)據(jù)庫數(shù)據(jù)分批讀取的實現(xiàn)示例

    在處理大量數(shù)據(jù)時,直接從數(shù)據(jù)庫一次性讀取所有數(shù)據(jù)可能會導致內(nèi)存溢出或者性能下降,本文就來介紹一下java數(shù)據(jù)庫數(shù)據(jù)分批讀取的實現(xiàn)示例,感興趣的可以了解一下
    2024-01-01
  • Java通過百度地圖API獲取定位(普通IP定位)的方法教程

    Java通過百度地圖API獲取定位(普通IP定位)的方法教程

    這篇文章主要介紹了Java通過百度地圖API獲取定位的方法教程,首先說明了實現(xiàn)這個功能的需求和初衷,然后詳細描述了利用百度地圖API實現(xiàn)這個功能的步驟,包括在百度地圖開放平臺的準備工作、學習官網(wǎng)API文檔、修改API的AK配置、Java代碼獲取定位等,需要的朋友可以參考下
    2024-11-11
  • Spring中ApplicationEventPublisher發(fā)布訂閱模式的實現(xiàn)

    Spring中ApplicationEventPublisher發(fā)布訂閱模式的實現(xiàn)

    本文主要介紹了Spring中ApplicationEventPublisher發(fā)布訂閱模式的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2023-07-07
  • SpringBoot 如何讀取classpath下的文件

    SpringBoot 如何讀取classpath下的文件

    這篇文章主要介紹了SpringBoot 讀取classpath下的文件方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-06-06
  • java單機接口限流處理方案詳解

    java單機接口限流處理方案詳解

    這篇文章主要為大家詳細介紹了java單機接口限流處理方案,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-11-11
  • Java輸出Hello World完美過程解析

    Java輸出Hello World完美過程解析

    當我們學習一門編程語言的時候,我們都會先學如何輸出Hello World!本文通過幾個例子給大家介紹輸出Hello World的代碼,感興趣的朋友一起看看吧
    2021-06-06
  • spring boot切面execution表達式添加多個包路徑問題及解決方案

    spring boot切面execution表達式添加多個包路徑問題及解決方案

    在Spring Boot中,如果你想為多個包中的方法創(chuàng)建一個切面,你可以在@Pointcut注解中使用||操作符來指定多個包,下面給大家分享spring boot切面execution表達式添加多個包路徑問題及解決方案,感興趣的朋友跟隨小編一起看看吧
    2024-03-03
  • java序列化的種類和使用場景詳解

    java序列化的種類和使用場景詳解

    本文詳細介紹了序列化的概念、Java內(nèi)置序列化、自定義序列化、第三方序列化框架(如Kryo、Protobuf)以及在分布式系統(tǒng)和RPC框架中的應用,通過比較不同序列化方式的優(yōu)缺點,指導開發(fā)者選擇合適的序列化方案,以確保系統(tǒng)的性能、安全性和可維護性
    2025-01-01

最新評論

卢氏县| 普兰店市| 江永县| 永和县| 龙井市| 元氏县| 吴堡县| 南岸区| 旌德县| 板桥市| 绥阳县| 泊头市| 玛纳斯县| 黔江区| 盐城市| 略阳县| 蕉岭县| 金塔县| 胶州市| 中卫市| 冀州市| 辉南县| 罗源县| 化德县| 饶阳县| 朝阳区| 宁南县| 遵义县| 喜德县| 江津市| 宁化县| 沭阳县| 富阳市| 固原市| 古蔺县| 高青县| 邳州市| 东乌| 灵台县| 桂东县| 凤阳县|