最新国产好看的视频,伊人天堂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查詢的返回結果本身就是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)點:

  • 面向對象的良好詮釋;
  • 數(shù)據(jù)結構清晰,便于團隊開發(fā)和后期維護;
  • 代碼足夠健壯,可以排除掉編譯期錯誤;

4、javabean的缺點:

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

PO和VO相結合

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

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

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

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

示例如下:

vue調用的方法如下,可見我們傳了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ù)。

總結

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

相關文章

  • 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)自動登陸京東,以及簽到領取金幣。本文圖文實例相結合給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友參考下吧
    2019-10-10
  • java數(shù)據(jù)庫數(shù)據(jù)分批讀取的實現(xiàn)示例

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

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

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

    這篇文章主要介紹了Java通過百度地圖API獲取定位的方法教程,首先說明了實現(xiàn)這個功能的需求和初衷,然后詳細描述了利用百度地圖API實現(xiàn)這個功能的步驟,包括在百度地圖開放平臺的準備工作、學習官網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內置序列化、自定義序列化、第三方序列化框架(如Kryo、Protobuf)以及在分布式系統(tǒng)和RPC框架中的應用,通過比較不同序列化方式的優(yōu)缺點,指導開發(fā)者選擇合適的序列化方案,以確保系統(tǒng)的性能、安全性和可維護性
    2025-01-01

最新評論

克什克腾旗| 保山市| 钟山县| 柳河县| 息烽县| 隆尧县| 潼关县| 旬阳县| 贞丰县| 南华县| 石楼县| 湖南省| 梁河县| 濉溪县| 罗城| 堆龙德庆县| 云龙县| 德安县| 同心县| 繁昌县| 沙坪坝区| 南安市| 洛隆县| 兴山县| 呈贡县| 夏河县| 阿克| 凌海市| 汾阳市| 延庆县| 河北区| 保定市| 姚安县| 射洪县| 兰考县| 舞阳县| 广丰县| 土默特左旗| 五指山市| 黔西县| 明光市|