在Web開發(fā)中,前后端數(shù)據(jù)傳遞是非常常見(jiàn)的需求。前臺(tái)一般會(huì)將數(shù)據(jù)封裝成JSON格式的數(shù)據(jù),然后通過(guò)Ajax請(qǐng)求發(fā)送給后臺(tái),后臺(tái)再進(jìn)行處理。那么在后臺(tái)中如何獲取前端傳遞的JSON數(shù)據(jù)呢?
我們可以通過(guò)使用Controller來(lái)獲取前端傳遞的JSON數(shù)據(jù)。Controller中一般都會(huì)定義對(duì)應(yīng)的請(qǐng)求映射,通過(guò)@RequestMapping注解來(lái)標(biāo)識(shí)。
在Controller方法中,我們可以通過(guò)@RequestParam注解來(lái)獲取前臺(tái)傳遞的JSON數(shù)據(jù)。具體代碼如下:
@RequestMapping(value = "/test") @ResponseBody public String testMethod(@RequestParam("json") String json) { System.out.println(json); //進(jìn)行相應(yīng)的處理 return "success"; }
上述代碼中,@RequestParam注解中的"json"表示前端傳遞的參數(shù)名為json的數(shù)據(jù)。我們將其封裝成String類型的json變量,然后就可以對(duì)它進(jìn)行相應(yīng)的處理。
需要注意的是,在使用@RequestParam注解獲取JSON數(shù)據(jù)時(shí),需要將傳遞的請(qǐng)求數(shù)據(jù)類型設(shè)置為application/json。代碼如下:
$.ajax({ url : "/test", type : "POST", dataType : "json", contentType : "application/json", data : JSON.stringify(jsonData), success : function(data) { console.log("success"); }, error : function(data) { console.log("error"); } });
以上代碼中,我們通過(guò)dataType和contentType來(lái)指定請(qǐng)求數(shù)據(jù)的類型為JSON,然后將JSON數(shù)據(jù)通過(guò)JSON.stringify()方法將其轉(zhuǎn)換為字符串傳遞給后臺(tái)。
通過(guò)以上方法,我們就可以在后臺(tái)Controller中獲取前臺(tái)傳遞的JSON數(shù)據(jù)并進(jìn)行相應(yīng)的處理了。