springmvc中Json的使用
程序员文章站
2022-07-12 19:41:42
...
首先想使用springmvc中的Json支持需要先加入三个jar包
如果是使用maven构建项目只需要添加jackson-databind的jar包其他两个会自动依赖
上面是使用jackson,也可以使用fastjson,功能是一样的,只是用不同的类实现了
这个是使用jackson时用的转换器类
这个是使用fastjson时使用的转换器类
想让springmvc方法放回Json,在方法上加上@ResponseBody注解,如果相让参数传入的也是Json,在请求参数前面加@RquestBodu注解即可,或者将@Controller注解换成@RestController注解,则方法上不用添加@ResponseBody
@ResponseBody
@RequestMapping(value="/testJson", method = RequestMethod.GET)
public Collection<Employee> testJson(){
return employeeDao.getAllEmployee();
}
今天在使用的时候出现了问题
controller
@RequestMapping(value = "/save",method = RequestMethod.POST)
public String save(@RequestBody Employee employee){
jsp
$.post("${pageContext.request.contextPath}/employee/save",args,function (data) {
alert(data);
},"json");
上面的请求是不成功的,原因就是没有指定数据请求头中数据的格式,应该指定为application/json的格式
$.ajax({
type: 'POST',
url: "${pageContext.request.contextPath}/employee/save",
data: JSON.stringify(args),
success: function (data) {
alert(data);
},
headers : { 'content-type' : 'application/json' }
});
上面是正确的请求,应该指定数据的格式和请求头的格式,必须同时指定