springMVC框架--json数据的交互(四)

来源:互联网 发布:数据脱敏 英文 编辑:程序博客网 时间:2024/05/21 10:50

json数据格式简单易于理解,常用于远程接口传输数据。

1.1    springmvc解析json加入json解析包

Springmvc默认用MappingJacksonHttpMessageConverter对json数据进行转换,需要加入jackson的包,如下:

1.2    在适配器中配置json数据转换器

让处理器适配器支持json数据解析,需要注入MappingJacksonHttpMessageConverter。


1.3    @RequestBody和@ResponseBody注解用于解析json数据

@RequestBody:将请求的json数据转成java对象

 @ResponseBody:将java对象转成json数据输出。


1.4    测试json数据和java对象的转换

Json测试页面(jsonTest.jsp)

<%@ page language="java" contentType="text/html;charset=UTF-8"    pageEncoding="UTF-8"%><!DOCTYPE html PUBLIC"-//W3C//DTD HTML 4.01 Transitional//EN""http://www.w3.org/TR/html4/loose.dtd"><html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>json测试</title><script type="text/javascript" src="${pageContext.request.contextPath}/js/jquery-1.4.4.min.js"></script><script type="text/javascript"> //请求json响应jsonfunction requestJson(){   $.ajax({      url:"${pageContext.request.contextPath}/requestJson.action",      type:"post",      contentType:"application/json;charset=utf-8",      //请求json数据,使用json表示商品信息      data:'{"name":"手机","price":1999}',      success:function(data){                 alert(data.name);      }   });}//请求key/value响应jsonfunction responseJson(){     $.ajax({      url:"${pageContext.request.contextPath}/responseJson.action",      type:"post",      //contentType:"application/json;charset=utf-8",      //请求key/value数据      data:"name=手机&price=1999",      success:function(data){         alert(data.name);      }   });}</script></head><body> <input type="button" value="请求json响应json" onclick="requestJson()"/><input type="button" value="请求key/value响应json" onclick="responseJson()"/></body></html>

定义一个Controller方法用于接收提交的数据(JsonTest.java)

package cn.itcast.ssm.controller; import java.util.List; import org.springframework.stereotype.Controller;importorg.springframework.web.bind.annotation.RequestBody;importorg.springframework.web.bind.annotation.RequestMapping;importorg.springframework.web.bind.annotation.ResponseBody; import cn.itcast.ssm.po.ItemsCustom; /** * json测试 * @author xia * */@Controllerpublic class JsonTest {       //请求的json响应json,请求商品信息,商品信息用json格式,输出商品信息      @RequestMapping("/requestJson")      public @ResponseBody ItemsCustom requestJson(@RequestBodyItemsCustom itemsCustom)throws Exception{         System.out.println(itemsCustom.getName()+itemsCustom.getPrice());         return itemsCustom;              }      //请求key/value响应json      @RequestMapping("/responseJson")      public @ResponseBody ItemsCustomresponseJson(ItemsCustom itemsCustom)throws Exception{         System.out.println(itemsCustom.getName()+itemsCustom.getPrice());         returnitemsCustom;      }}


 

0 0
原创粉丝点击