SpringMVC学习之json数据交互
程序员文章站
2024-01-12 20:10:46
...
为什么要进行json数据交互
json数据格式在接口调用中、html页面中较常用,json格式较简单,解析起来比较方便。
比如:webservice接口,传入json数据、xml等。。
springmvc进行json交互
1、请求的是json,输出json,要求请求的是json串,所以在前端页面中需要将请求的内容转成json,不太方便
2、请求的是key\value 输出json,此方法比较常用。
环境准备
1、加入jar包
springmvc中使用jackson的包进行json转换(@RequestBody和@ResponseBody)
将其加入到项目的librery中
2、配置json转换器
<!--注解适配器 -->
<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>
注意:如果使用<mvc:annotation-driven /> 则不用定义上边的内容。
json交互测试
1、输入json串,输出json串
jsp页面:
使用jquery的ajax提交json串,对输出的controller方法的结果进行解析
<%--
Created by IntelliJ IDEA.
User: Alex
Date: 2017/6/29
Time: 21:52
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>json交互数据测试</title>
<script src="../../js/jquery-1.4.4.min.js" type="text/javascript" />
<script type="text/javascript">
//请求的是json,输出的是json
function requsetJson(){
$.ajax({
type:'post',
url: '${pageContext.request.contextPath}/requestJson.action',
contentType:'application/json;charset=utf-8',
//数据格式是json串
data:'{"name":"手机","price":"999"}',
success:function(data){
//返回json结果
alert(data);
}
});
}
//请求的是key\value,输出的是jaon
function responseJson(){}
</script>
</head>
<body>
<input type="button" onclick="requsetJson()" value="请求json,输出json" />
<input type="button" onclick="responseJson();" value="请求key\value,输出json" />
</body>
</html>
controller:
@Controller
public class JsonTest {
//请求json(商品信息),输出响应json(商品信息)
//@RequestBody 将请求的商品信息的json串转成itemsCustom对象
//@ResponseBody 将itemsCustom对象转成json输出
@RequestMapping("/requestJson")
public @ResponseBody ItemsCustom requestJson(@RequestBody ItemsCustom itemsCustom) throws Exception{
//@ResponseBody 将itemsCustom转成json输出
return itemsCustom;
}
}
测试结果:
2、输入key/value , 输出json串(常用)
jsp页面:
使用jquery的ajax提交json串,对输出的controller方法的结果进行解析
//请求的是key\value,输出的是jaon
function responseJson(){
$.ajax({
type:'post',
url: '${pageContext.request.contextPath}/responseJson.action',
//请求的是key\value这里不需要特意指定contentType,因为默认就是key\value类型
// contentType:'application/json;charset=utf-8',
//数据格式是json串
data:'name=手机&price=999',
success:function(data){
//返回json结果
alert(data);
}
});
}
Controller:
@RequestMapping("/responseJson")
public @ResponseBody ItemsCustom responseJson(ItemsCustom itemsCustom) throws Exception{
//@ResponseBody 将itemsCustom转成json输出
return itemsCustom;
}
测试:
推荐阅读
-
Python ORM框架SQLAlchemy学习笔记之数据添加和事务回滚介绍
-
Unity 基础 之 实现简单的Android移动端本地数据读取与写入封装(简单加密写入,解密读取 json 数据)
-
php学习之数据类型之间的转换介绍_PHP
-
数据分析之pandas学习
-
Javascript学习笔记一 之 数据类型_基础知识
-
PHP学习笔记7-JSON数据操作,php学习笔记7-json
-
Laravel 5框架学习之向视图传送数据(进阶篇)_PHP
-
Laravel 5框架学习之向视图传送数据(进阶篇),laravel框架_PHP教程
-
Android学习--封装成json数据和解析json数据
-
SpringMVC对json数据的处理