10.SpringMVC與前臺的json數據交互

昨天給大家分享了SpringMVC的文件上傳功能,今天來跟大家分享下SpringMVC與前臺的json數據交互。

json數據格式在接口調用中、html頁面中比較常用,json格式比較簡單,解析也比較方便,所以使用很普遍。在springmvc中,也支持對json數據的解析和轉換。

1. 兩種交互形式

springmvc和前臺交互主要有兩種形式,如下圖所示:
在這裏插入圖片描述
可以看出,前臺傳過來的方式有兩種,一種是傳json格式的數據過來,另一種就是在url的末尾傳普通的key/value串過來,針對這兩種方式,在controller中會有不同的解析,但是在controller中返回的json格式的數據都是一樣的。下面來具體分析一下springmvc是如何與前臺進行json數據的交互的。

2. 配置json轉換器

配置json轉換器有兩種方式,如果是配置了註解適配器org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter的話,需要在該適配器中配置json轉換器, 如下:
在這裏插入圖片描述
但是如果使用<mvc:annotation-driven />註解驅動的話就不用以上的配置了,默認已經配好了。建議使用這種,比較方便。

3. json交互測試

1)前臺傳輸的是json格式數據

我們使用jquery的ajax提交json串,對輸出的json結果進行解析。前臺的程序如下:
在這裏插入圖片描述
看一下controller中是如何操作的。
在這裏插入圖片描述
由於前臺傳的是name和price兩個屬性,所以在後臺就用ItemsCustom來接收了,這個類中也有這兩個屬性。重點是@RequestBody註解,它是將前臺傳過來的json串穿換成itemsaCustom對象,然後再將該對象return回去,通過@ResponseBody註解將itemsCustom對象轉成json格式返回給前臺。這樣前臺接收到了後就可以解析了。我們看一下測試的結果:
在這裏插入圖片描述
響應的結果,null表示空值而已,這裏就返回了原對象,也就只有name和price屬性。

2)前臺傳輸的是key/value格式的數據

我們還是使用jquery的ajax提交key/value串,對輸出的json結果進行解析。前臺的程序如下:
在這裏插入圖片描述
因爲key/value串不是json格式的,所以controller在接收的時候就不需要@RequestBody的註解了,但是返回到前臺的json格式的數據還是需要@ResponseBody註解的,如下:
在這裏插入圖片描述
測試結果如下:
在這裏插入圖片描述
springmvc與前臺json數據的交互就總結這麼多。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章