专业的JAVA编程教程与资源

网站首页 > java教程 正文

如何使用springmvc返回json格式的数据?

temp10 2024-10-10 12:18:37 java教程 7 ℃ 0 评论

在使用SpringMVC框架开发项目时,经常会用到@ResponseBody和@RequestBody这两个注解,它们都是SpringMVC处理json格式数据的注解,那么它们之间到底有什么区别,该怎么使用,如果你也感到困惑,那就继续往下看吧。

如果后台要给前端返回json格式数据,这时使用@ResponseBody注解来处理。

如何使用springmvc返回json格式的数据?

@ResponseBody注解是用在方法上,代表它会将后台的JavaBean对象转换成json字符串,返回给页面,一般页面使用AJAX发送异步请求时使用。

这时在方法上面使用@RequestMapping,不会解析成跳转路径,也就是不会转到视图解析器拼接返回路径,而是直接返回json数据到页面AJAX请求的success函数,直接解析就可以获取数据。

那如果是前端发送json格式数据给后端呢,该怎么办?

这个时候就要使用@RequestBody注解来处理了。

@RequestBody是用在方法形参列表上,用于接受前台json数据,把json字符串自动封装到javaBean对象属性上。

下面来看一个例子

如果项目使用jackson生成json数据,需要引入jackson的jar包,这里有个坑,要注意一下,我这里用的Spring5版本,所以jackson的jar版本不能低于2.9。(当然这里也可以使用阿里的fastjson生成json数据)。

Springmvc部分配置文件:

页面异步使用ajax请求,返回的json数据,在success方法中获取并解析。

Controller层的方法

使用注解@RequestBody需要注意的地方

1.前端ajax请求必须以post方式。

2.前端页面提交的json数据格式必须是json字符串类型,不能直接提交json对象,

并且json字符串中的各属性名需要与封装的实体类属性名一一对应!

3.使用的ajax请求必须设置contentType属性值为application/json。

而使用注解@ResponseBody没啥注意点,直接加在方法返回值前就行。

通过上面的比较和例子的使用,希望大家以后在开发时不要混淆了它们的使用,如果还有什么疑问,欢迎大家在下面留言交流。

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表