在使用springmvc的時(shí)候,后臺(tái)@RequestBody接受的是一個(gè)json格式的字符串,一定是一個(gè)字符串。
我們可以通過(guò)@RequestBody Map
@RequestMapping(value="/queryAccountList.do",produces="application/json;charset=UTF-8") @ResponseBody public HashMap<String, Object> queryAccountList(@RequestBody Map<String, Object> paramsMap){ System.out.println("paramsMap="+paramsMap); String channel= (String) paramsMap.get("channel"); String function_code=(String) paramsMap.get("function_code"); Map<String, Object> reqParam=(Map<String, Object>)paramsMap.get("data");
當(dāng)前端調(diào)用我們的接口時(shí),傳入json字符串,就轉(zhuǎn)為了map對(duì)象。這里主要是@RequestBody的底層實(shí)現(xiàn),我們不討論。
json對(duì)象和json字符串的區(qū)別:
var person={“name”:”zhangsan”,”sex”:”男”,”age”:”24”}//json對(duì)象
var person=’{“name”:”zhangsan”,”sex”:”男”,”age”:”24”}’;//json字符串
json對(duì)象轉(zhuǎn)為json字符串,調(diào)用stringify方法:
var person={"name":"zhangsan","sex":"男","age":"24"};//json對(duì)象var personString = JSON.stringify(person);alert(personString);
SpringMVC接受json字符串類(lèi)型。
在SpringMVC中基于REST開(kāi)發(fā)時(shí),前端傳入后臺(tái)的應(yīng)該是一個(gè)json格式的字符串,而不是一個(gè)json對(duì)象
GET、POST方式提時(shí), 根據(jù)request header Content-Type的值來(lái)判斷:
application/x-www-form-urlencoded, 可選(即非必須,因?yàn)檫@種情況的數(shù)據(jù)@RequestParam, @ModelAttribute也可以處理,當(dāng)然@RequestBody也能處理);
multipart/form-data, 不能處理(即使用@RequestBody不能處理這種格式的數(shù)據(jù));
其他格式, 必須(其他格式包括application/json, application/xml等。這些格式的數(shù)據(jù),必須使用@RequestBody來(lái)處理)。
聯(lián)系客服