詳解使用@RequestBody取POST方式的json字符串
關(guān)于@RequestBody 映射實(shí)體類的方法,網(wǎng)上大量討論,不再細(xì)說(shuō)。
但前端提交復(fù)雜結(jié)構(gòu),或動(dòng)態(tài)性比較大的數(shù)據(jù)結(jié)構(gòu)時(shí),就可能不能映射固定類。用map方式貌似也不太靈(沒(méi)有仔細(xì)研究,過(guò)程中,前端json結(jié)構(gòu)比較復(fù)雜時(shí),失敗了)。
前端寫法:
var json_data={
"name" : "demographics",
"params" : [1 , 2, 3],
"items" : [ {"name" : "中文", "value" : 10 },
{"name": "item2", "value" : 20 }
]
};
$.ajax({
url : 'chart/graphics',
type : 'post',
data : JSON.stringify(json_data),
contentType : 'application/json;charset=utf-8' //中文需要加上charset=utf-8才正確
});
后端寫法
@RequestMapping(value="/{name}", method=RequestMethod.POST, produces="application/json;charset=utf-8;")
@ResponseBody
public String postDashboardItem(
@PathVariable(value="name") String name,
@RequestBody String params,
Model model) {
JSONObject object= JSON.parseObject(params);
//do somthings
return ""; //json string
}
更正:
感謝alan_waker的提醒,重復(fù)做了map接收參數(shù)的實(shí)驗(yàn),效果不錯(cuò)。
前端寫法一樣,
后端寫法:
@RequestMapping(value="/{name}", method=RequestMethod.POST, produces="application/json;charset=utf-8;")
@ResponseBody
public String postDashboardItem(
@PathVariable(value="name") String name,
@RequestBody Map<String, Object> params,
Model model) {
//do somthings
return ""; //json string
}
需要引用 jackson-databind包,否則前端會(huì)報(bào) 415錯(cuò)誤。后臺(tái)報(bào)Content type 'application/json;charset=UTF-8' not supported。
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
JavaWeb ServletConfig作用及原理分析講解
ServletConfig對(duì)象,叫Servlet配置對(duì)象。主要用于加載配置文件的初始化參數(shù)。我們知道一個(gè)Web應(yīng)用里面可以有多個(gè)servlet,如果現(xiàn)在有一份數(shù)據(jù)需要傳給所有的servlet使用,那么我們就可以使用ServletContext對(duì)象了2022-10-10
java精度計(jì)算代碼 java指定精確小數(shù)位
這篇文章主要為大家詳細(xì)介紹了java精度計(jì)算代碼,java指定精確小數(shù)位,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-02-02
SpringBoot使用@PostConstruct注解導(dǎo)入配置方式
這篇文章主要介紹了SpringBoot使用@PostConstruct注解導(dǎo)入配置方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-11-11
java類Circle定義計(jì)算圓的面積和周長(zhǎng)代碼示例
要用Java計(jì)算圓的周長(zhǎng)和面積,需要使用圓的半徑和一些數(shù)學(xué)公式,下面這篇文章主要給大家介紹了關(guān)于java類Circle定義計(jì)算圓的面積、周長(zhǎng)的相關(guān)資料,需要的朋友可以參考下2024-04-04
Javaweb中Request獲取表單數(shù)據(jù)的四種方法詳解
本文主要介紹了Javaweb中Request獲取表單數(shù)據(jù)的四種方法詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2022-04-04
Spring?Boot多數(shù)據(jù)源事務(wù)@DSTransactional的使用詳解
本文主要介紹了Spring?Boot多數(shù)據(jù)源事務(wù)@DSTransactional的使用詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2023-06-06

