spring mvc自動パッケージ先端から送信されたjsonデータは指定の対象にバインドされています.
3209 ワード
1.問題シーン
フロントエンドでjQueryで楽屋にjsonデータを送信し、バックグラウンドでパッケージされたオブジェクトを受信します.
2.コードの例
先端
1.jsonデータはJSON.stingify()方法で文字列に変換しなければなりません.
2.contentTypeは省略できません.
楽屋
@Request Bodyは省略できません.
3.spring mvcパッケージjsonデータの原理分析
まず、@Request Bodyを通じて、この方法のパラメータはrequestのbodyによって結合されるべきであることを示します.即ち、私たちは先端からjsonデータを伝えます.この変換器はorg.springframe ework.http.com nverter.Http Message Coverterの一つの実現類です.ここではアリのfastjsonを使って、springのデフォルトのJacksonに取って代わってデータを結び付けます.(fastjsonで一番直観的なメリットは、属性が空であれば、jsonに転化しないということです.データは簡潔で多いです.)
第一歩:mvcプロファイルにfastjsonを配置する
comp.alibaba.fastjson.support.spring.FastJsonHttp Message Coverter 4唴readInternal方法で処理してください.要求されたbodyの内容を読み取り、JSON.parseObjectを通じてターゲットオブジェクトに戻ります.
フロントエンドでjQueryで楽屋にjsonデータを送信し、バックグラウンドでパッケージされたオブジェクトを受信します.
2.コードの例
先端
$.ajax({
url:"XXXX",
data:JSON.stringify(user),//user json
type:"XXX",
contentType: "application/json;charse=UTF-8",
success:function (data) {
},
error:function (err) {
}
});
注意1.jsonデータはJSON.stingify()方法で文字列に変換しなければなりません.
2.contentTypeは省略できません.
楽屋
@RequestMapping(value = "xxxxx",method = RequestMethod.XXX)
@ResponseBody
public Msg methodName(@RequestBody User user) {
logger.info("user:"+user);
return Msg.success();
}
注意@Request Bodyは省略できません.
3.spring mvcパッケージjsonデータの原理分析
まず、@Request Bodyを通じて、この方法のパラメータはrequestのbodyによって結合されるべきであることを示します.即ち、私たちは先端からjsonデータを伝えます.この変換器はorg.springframe ework.http.com nverter.Http Message Coverterの一つの実現類です.ここではアリのfastjsonを使って、springのデフォルトのJacksonに取って代わってデータを結び付けます.(fastjsonで一番直観的なメリットは、属性が空であれば、jsonに転化しないということです.データは簡潔で多いです.)
第一歩:mvcプロファイルにfastjsonを配置する
<mvc:annotation-driven>
<mvc:message-converters>
<bean class="com.alibaba.fastjson.support.spring.FastJsonHttpMessageConverter4"/>
mvc:message-converters>
mvc:annotation-driven>
ステップ2:ブレークポイントトレース要求の処理手順comp.alibaba.fastjson.support.spring.FastJsonHttp Message Coverter 4唴readInternal方法で処理してください.要求されたbodyの内容を読み取り、JSON.parseObjectを通じてターゲットオブジェクトに戻ります.
protected Object readInternal(Class extends Object> clazz, //
HttpInputMessage inputMessage //
) throws IOException, HttpMessageNotReadableException {
InputStream in = inputMessage.getBody();
return JSON.parseObject(in, fastJsonConfig.getCharset(), clazz, fastJsonConfig.getFeatures());
}