对于gson和jackson这两个json处理依赖,直接添加即可。 除此之外,其他的json解析器如fastjson都需要手动配置HttpMessageConverter.
实际上,在SpringMVC中,是由一个名叫HttpMessageConverter的类来提供对象到JSON字符串的转换的。而SpringMVC默认就提供了Gson和Jackson的HttpMessageConverter,分别是org.springframework.http.converter.json.GsonHttpMessageConverter和MappingJackson2HttpMessageConverter。对于其他的JSON解析器,只需要开发者手动配置一下HttpMessageConverter即可。
1、导入相关jar包
2、Controller类
在返回对象上加上@ResponseBody注解即可
package com.zhouym.json;
import java.util.Arrays;
import java.util.List;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import com.zhouym.javabean.User;
@Controller
public class MyController {
@RequestMapping("/show")
@ResponseBody
public User show() {
return new User(1,"老周","深圳");
}
@RequestMapping("/show1")
@ResponseBody
public List<String> show1() {
return Arrays.asList("深圳","北京","广州");
}
@RequestMapping("/show2")
@ResponseBody
public List<User> show2() {
return Arrays.asList(new User(1, "张三", "北京"),new User(2, "李四", "深圳"));
}
}
测试结果
fastjson进行数据交互
由于系统没有自动支持fastjson,所以需要我们手动配置HttpMessageConverter
1、导入fastjson包
2、配置fastjson的HttpMessageConverter
3、Controller类
4、前端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">
<!--引入jquery.js-->
<script type="text/javascript" src="js/jquery.min.js"></script>
<title>Insert title here</title>
</head>
<body>
<button type="button" onclick="showInfo()">提交json数据</button>
</body>
<script type="text/javascript">
function showInfo(){
$.ajax({
//提交方式必须是post
type:"post",
url:"show3",
//如果想以json格式把数据提交到后台的话,这个必须有,否则只会当做表单提交
contentType:"application/json",
//JSON.stringify()必须有,否则只会当做表单的格式提交
data:JSON.stringify({"id":100,"name":"张三","address":"深圳"}),
dataType:"json",
success:function(data){
alert("success:"+data);
},
error:function(data){
alert("error:"+data);
}
})
}
</script>
</html>
测试结果
springmvc中,直接接收json参数,如果参数中有日期的话,不需要定义日期类型转换器,日期的转换由gson/jackson/fastjson来提供。