SpringBoot Controller介面接收資料(二)(適合萌新)

飛上天的橘子發表於2020-12-07

前面我們一起探討了,怎麼去解讀不同小姐姐發給我們的情書哈。當然那些小姐姐都是比較好懂的。俗話說的好,女人心海底針。所以呀,兄弟們!我們早如何撩小姐姐的這條路上還是要繼續努力的。今天的小姐姐和前面的不一樣。她們送的東西比較多。而且不同的小姐姐對禮物還進行了包裝。
今天這裡呢先講最常見的兩種種包裝方式:json和form-data

一、json格式資料接收

好了廢話不多說,請上我們今天的第一個小姐姐。
在這裡插入圖片描述
這個小姐姐,使用了json的方式來包裝禮物。至於怎麼包裝的,各位。。你們去問小姐姐去哈。我這邊只教你怎麼拆。對於用json進行包裝禮物的小姐姐呢,她有點強迫症。也不能這麼說,反正呀,她給你準備禮物呢,都會提前去問你喜不喜歡,讓你呢挑選一下。這樣出現個什麼情況呢,就是你對於小姐姐要送你什麼禮物你其實是心裡有數的。
回到程式碼上。也就是說,接受json 資料,你需要按照資料的引數情況呢,新建一個實體類。比如這裡我們就把這個實體類命名為Gift。程式碼內容如下:

public class Gift  {
	private String qingshu;
	private String liwu1;
	private String liwu2;
	public int getQingshu() {
		return this.qingshu;
	}
	public void setQingshu(int qingshu) {
		this.qingshu = qingshu;
	}
	public String getLiwu1() {
		return this.liwu1;
	}
	public void setLiwu1(String liwu1) {
		this.liwu1 = liwu1;
	}
	public String getLiwu2() {
		return this.liwu2;
	}
	public void setLiwu2(String liwu2) {
		this.liwu2 = liwu2;
	}
}

哦,這裡說明下我這邊用的是springboot+mybatis+xml的構架來展示的。至於這方面,大家自己參考別的文件或者教程哈,還是有很多的。
這邊強調的就是需要新建一個實體類,這樣才能接受json資料。那怎麼接受,看下面程式碼:

@PostMapping(path = "/jack")
public void demo1(@RequestBody Gift gift) {
    System.out.println(gift.toString());
}

這裡我們使用到了**@RequestBody**這個註解。他意思就是接受小姐姐包裝好的禮物。不過再強調一下,需要接收哪些東西我們需要心中有數。
然後如果你想拿出禮物的一部分,比如裡面的liwu1。那程式碼只需要如下增加:

@PostMapping(path = "/jack")
public void demo1(@RequestBody Gift gift) {
    System.out.println(gift.liwu1.toString());
}

接收結果是:
qingshu:ILOVEYOU;liwu1:手機;liwu2:電腦

我覺得這個還是很好理解的。json目前是用於簡單資料傳輸最普遍的方式。我們後端程式碼返回給前端的一般也都是使用json格式資料。
好啦,第一個小姐姐,坦白直接型別的。已經介紹完了。不知道你喜不喜歡呢,反正我是喜歡。

二、form-data格式資料接收

接下來是第二種型別的小姐姐。這個小姐姐呢,屬於浪漫主義。她送禮,你不需要提前去知道里面是啥,當然你可以知道。也可以選擇不去知道。程式碼方面說,就是如果不是其他功能的需要,僅做接收form-data資料的事的話,我們不需要去構造相對應的實體類的。我們先看看小姐姐包裝的禮物。
在這裡插入圖片描述
至於接收也不難。分兩種形式。第一種,如果你對於小姐姐要送的東西一清二楚的話,我意思有對應實體類的話,如下:

@PostMapping(path = "/jack")
public void demo2(Gfit gfit) {
    System.out.println(gfit.toString());
}

接收結果依然是:
qingshu:ILOVEYOU;liwu1:手機;liwu2:電腦

這邊更有意思的是,如果你本以為,小姐姐只送了一個禮物。你也只收了一個禮物,這樣也是行的通的。比如下方程式碼:

@PostMapping(path = "/jack")
public void demo2(String liwu1) {
    System.out.println(liwu1);
}

這時候的結果就只有:
手機
這是不是挺有意思的。並且更強大的是。這個小姐姐還能滿足你的慾望。比如目前說好的只有qingshu+liwu1+liwu2。但你覺得這些你都覺得還行吧,但你最想要是的小姐姐的寫真照片。於是你就提出了這個要求沒如下

@PostMapping(path = "/jack")
public void demo2(Gift gift ,String liwu3 ) {
    System.out.println(gift.toString());
    System.out.println(liwu3);
}

這情況會咋樣呢。要是小姐姐沒同意,那liwu3就是空的。如果她同意了。那就能收到資料。是不是覺得這個小姐姐也不錯。
。。。
json和form-data兩種型別資料的接收就介紹到這。後面其他資料型別的接收。有空我慢慢補上。大哥們!!!求一鍵三連呀。一起進步!!!沖沖衝。

相關文章