龙空技术网

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

正义的板栗君 387

前言:

而今你们对“ajax后台返回json怎么写”大概比较关心,小伙伴们都想要分析一些“ajax后台返回json怎么写”的相关资讯。那么小编同时在网上网罗了一些有关“ajax后台返回json怎么写””的相关内容,希望咱们能喜欢,大家一起来学习一下吧!

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

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

@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没啥注意点,直接加在方法返回值前就行。

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

标签: #ajax后台返回json怎么写