SpringMVC接受json引數詳解

2021-10-06 03:41:07 字數 1576 閱讀 3849

1、概念

註解 @responsebody,使用在控制層(controller)的方法上。

2、作用

作用:將方法的返回值,以特定的格式寫入到response的body區域,進而將資料返回給客戶端。 當方法上面沒有寫responsebody,底層會將方法的返回值封裝為modelandview物件。 如果返回值是字串,那麼直接將字串寫到客戶端;如果是乙個物件,會將物件轉化為json串,然後寫到客戶端 。

4、原理

控制層方法的返回值是如何轉化為json格式的字串的?其實是通過httpmessageconverter中的方法實現的,它本是乙個介面,在其實現類完成轉換。如果是bean物件,會呼叫物件的get***()方法獲取屬性值並且以鍵值對的形式進行封裝,進而轉化為json串。如果是map集合,採用get(key)方式獲取value值,然後進行封裝

2.value指定介面請求位址

(value =

"/a"

, consumes=

)3.指定接受引數方式

通過實體類來接受json引數,這種方式適用於有對應引數得實體類

@controller

public

class

passjsonparam

}

引數樣例

通過map集合來接收引數,這種方式適用於沒有對應實體類

(value =

"/b"

, consumes=

)@responsebody

public map b(

@requestbody map

paramsmap,

)引數樣例

通過list集合接收引數,適用於接受多個物件集合

(value =

"/c"

, consumes=

)@responsebody

public list c(

@requestbody list

book)

引數樣例

[

,]

通過string 接收引數,這種方式適用於沒有對應實體類

//注意controller中只允許有乙個@requestbody註解,通過string 引數接受會接收整個json資料,

(value =

"/d"

, consumes=

)@responsebody

public list d(

@requestbody string param)

注意:後台通過reuestbody註解修飾 前端傳遞引數只能傳遞json字串 而不可以傳遞json物件

var param =

;data: json.

stringify

(param)

,

spring mvc接受前端投遞的json問題

class user json public void create user user 此時因為json資料中比bean物件多了乙個屬性,所以後台spring mvc在處理的時候會報400 bad request錯誤,有什麼辦法可以過濾掉前端傳過來的多餘的屬性麼?json傳過來的屬性可能很多且未知...

springmvc 接受json引數的坑

構造json資料時候js物件中的值 一定要用 雙引號,不能用單引號,因為轉成字串後,到後台進行解析時,因為j a認為單引號是單字元 轉不成對應的字串,所以會報錯!如下正確 function insertbyentity ajax url,success function data 後台接收 inse...

springmvc 接受引數

1.接受陣列型別引數 前台 var arr 1,2,3,4,5 springmvc 傳入陣列 function function data responsebody public string getint requestparam items string items 2.傳入pojo型別引數,注...