Springboot前后端使用json交互数据(@RequestBody注解的理解)
json
适用于现代 C++ 的 JSON。
项目地址:https://gitcode.com/gh_mirrors/js/json
免费下载资源
·
先说说我对控制器的理解
- 控制器在接收请求时,实际上是接收了一个HTTP报文,HTPP报文的主体部分会传给控制器方法的参数。
- 例如,当注册一个用户,把表单提交一个控制器,这时就会发送一个报文,表单提交的报文Content-Type首部默认是
application/x-www-form-urlencoded
,这会把表单中的数据编码为k:v的形式传送给后台。 - 控制器的参数应该一个POJO的对象,当控制器接收到表单的数据只要属性名和表单中的name属性名相同就会自动入参。那它为什么可以自动入参呢,这得益于一个接口,这个接口是
org.springframework.http.converter.HttpMessageConverter
从后台获取JSON数据
这个很简单,不管利用何种方式,获得JSON数据后利用前端技术解析即可,重点说一说怎么向后端发送json数据。
向后台发送JSON数据(@RequestBody)
- 表单提交时默认的Content-Type就是
application/x-www-form-urlencoded
,当报文的这个首部是这个值时,控制器方法中的参数不用配置就可以接收。 - 但当报文的Content-Type首部不是
application/x-www-form-urlencoded
时一般要给参数添加@RequestBody注解。 - 比如要提交json数据给后台时,发送的报文Context-Type首部为
application/json
,这时必须要给参数添加@RequestBody注解,这个参数才可以接收报文主体中的json数据。 - 接收JSON数据的参数可以是一个字符串也可以是一个POJO对象,只要json数据的k和POJO中的属性名一样就会自动入参,但要注意POJO中属性的数据类型也要和josn中的数据类型对应,只要有一个不对应就会全部入参失败,如果json数据是一个数组,道理也是一样的。
- 下面是一个示例:
- POJO类:
- 控制器:
- 前端用AJAX发送一段json到控制器,并直接将返回的数据显示出来
- 运行结果:
- 下载这个demo,码云:
https://gitee.com/blog_quotes/springboot-json.git
GitHub 加速计划 / js / json
41.72 K
6.61 K
下载
适用于现代 C++ 的 JSON。
最近提交(Master分支:1 个月前 )
960b763e
3 个月前
8c391e04
6 个月前
更多推荐
已为社区贡献1条内容
所有评论(0)