赞
踩
在Spring Boot项目中,传递JSON对象次数比较多,简而言之(笔者前面写的传递一个属性,多个属性,对象,数组,List集合等各种程序,都用的比较少,仅是铺垫)
那么,用Java创建的Spring Boot项目中,如何传递JSON对象呢?
本文便带领大家走进在Spring Boot项目中,如何传递JSON对象:
先定义一个Person对象,里面有id,name,age属性,并重写getter ,setter ,toString等方法!
- package com.example.demo.controller;
-
-
- //将参数封装为对象
- public class Person {
- Integer id;
- String name;
- Integer age;
-
- public Integer getId() {
- return id;
- }
-
- public void setId(Integer id) {
- this.id = id;
- }
-
- public String getName() {
- return name;
- }
-
- public void setName(String name) {
- this.name = name;
- }
-
- public Integer getAge() {
- return age;
- }
-
- public void setAge(Integer age) {
- this.age = age;
- }
-
- @Override
- public String toString() {
- return "Person{" +
- "id=" + id +
- ", name='" + name + '\'' +
- ", age=" + age +
- '}';
- }
- }
那么,我们不用管前端如何传递来的JOSN数据,作为后端只需要处理前端传递来的数据即可!
- @RestController
- @RequestMapping("/param")
- public class ParamController {
-
- @RequestMapping("/m7")
- public String m7(Person person){
- return " 接收到的参数:Person:"+person.toString();
- }
- }
那么,我们利用Postman来进行传递JSON数据:
- {
- "id":5,
- "name":"zhangsan",
- "age":10
- }
启动程序,我们在Postman中的运行结果为:
那么,此刻我们便深深的怀疑,到底那儿出错了??前端传递来的JSON数据没有错误!!主要错误是在后端!!
根据Fiddler Classic的抓包结果我们也可以看出:前端传递来的JSON数据没有错误!!主要错误是在后端!!
其实这个主要还是由于person默认的是key--value型,默认从Url中拿,当我们在Url中随便选择一个参数对其赋值,那么,此时我们的效果为:
在Postman中输入:http://localhost:8080/param/m7?id=5
同理,在浏览器中也有着相同的效果:
那么,对于该问题,我们该如何处理呢??
传递JSON数据,需要使用@RequestBoby注解来搭配使用!
参考代码为:
- @RestController
- @RequestMapping("/param")
- public class ParamController {
-
- @RequestMapping("/m7")
- public String m7(@RequestBody Person person){
- return " 接收到的参数:Person:"+person.toString();
- }
- }
当我们在Postman再次测试的时候可以发现:
成功解决Bug!!
在这里,我们需要注意的是:
传递JSON数据,使用@RequestBoby,我们传递的JSON数据是在请求正文中的,而不是在Url中传递的!!
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。