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

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响应json
function 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响应json
function 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" οnclick="requestJson()"/>
<input type="button" value="请求key/value响应json" οnclick="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
 *
 */
@Controller
public 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;
      }
}


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

愚人节第二天

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值