SpringMVC進行Json交互:前端
客戶端發送請求。若該請求K/V串是Json串時,這時會通過controller的參數綁定,進行Json數據的轉換,轉換時,在SpringMVC中,經過註解@RequestBody將Json串轉成Java對象。@ResponseBody將Java對象轉成Json串輸出。若該請求只是K/V,而不是Json串,則只是用@ResponseBody將Java對象轉成Json串輸出。最終都輸出Json數據,爲了在前端頁面方便對請求結果進行解析。web
請求Json、響應Json實現:ajax
SpringMVC默認使用MappingJacksonHttpMessageConverter對Json數據進行轉換(@RequestBody和ResponseBody),須要加入jackson包。spring
配置Json轉換器,在註解適配器中加入messageConverters。json
<!-- 註解適配器 注:若使用註解驅動標籤mvc:annotation-driven則不用定義該內容 --> <bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter"> <property name="messageConverters"> <list> <bean class="org.springframework.http.converter.json.MappingJacksonHttpMessageConverter"></bean> </list> </property> </bean>
輸入Json,輸出Json:mvc
使用Jquery的ajax提交json串,對輸出的json結果進行解析。app
$.ajax({ type:"post", url:"${pageContext.request.contextPath }/requestJson.action", contentType:"application/json;charset=utf-8", data:{} success:function(){ }, error:function(){ } });
輸入key/value,輸出Json:post
$.ajax({ type:"post", url:"${pageContext.request.contextPath }/responseJson.action?key=value", success:function(){ }, error:function(){ } });
@Controller public class GoodsJsonTest{ //@RequestBody GoodsCustom goodsCustom將請求的data中輸入的Json串轉成Java對象GoodsCustom //@ResponseBody GoodsCustom將Java對象轉Json @RequestMapping("/requestJson")//指定頁面 public @ResponseBody GoodsCustom requestJson(@RequestBody GoodsCustom goodsCustom){ return goodsCustom; } @RequestMapping("/responseJson") public @ResponseBody GoodsCustom requestJson(GoodsCustom goodsCustom){ return goodsCustom; } }