当前位置:   article > 正文

用Java创建的Spring Boot项目中,如何传递JSON对象呢?

用Java创建的Spring Boot项目中,如何传递JSON对象呢?

在Spring Boot项目中,传递JSON对象次数比较多,简而言之(笔者前面写的传递一个属性,多个属性,对象,数组,List集合等各种程序,都用的比较少,仅是铺垫)

那么,用Java创建的Spring Boot项目中,如何传递JSON对象呢?

本文便带领大家走进在Spring Boot项目中如何传递JSON对象

先定义一个Person对象,里面有id,name,age属性,并重写getter ,setter ,toString等方法!

  1. package com.example.demo.controller;
  2. //将参数封装为对象
  3. public class Person {
  4. Integer id;
  5. String name;
  6. Integer age;
  7. public Integer getId() {
  8. return id;
  9. }
  10. public void setId(Integer id) {
  11. this.id = id;
  12. }
  13. public String getName() {
  14. return name;
  15. }
  16. public void setName(String name) {
  17. this.name = name;
  18. }
  19. public Integer getAge() {
  20. return age;
  21. }
  22. public void setAge(Integer age) {
  23. this.age = age;
  24. }
  25. @Override
  26. public String toString() {
  27. return "Person{" +
  28. "id=" + id +
  29. ", name='" + name + '\'' +
  30. ", age=" + age +
  31. '}';
  32. }
  33. }

那么,我们不用管前端如何传递来的JOSN数据,作为后端只需要处理前端传递来的数据即可!

  1. @RestController
  2. @RequestMapping("/param")
  3. public class ParamController {
  4. @RequestMapping("/m7")
  5. public String m7(Person person){
  6. return " 接收到的参数:Person:"+person.toString();
  7. }
  8. }

问题:

那么,我们利用Postman来进行传递JSON数据:

  1. {
  2. "id":5,
  3. "name":"zhangsan",
  4. "age":10
  5. }

启动程序,我们在Postman中的运行结果为:

那么,此刻我们便深深的怀疑,到底那儿出错了??前端传递来的JSON数据没有错误!!主要错误是在后端!!

根据Fiddler Classic的抓包结果我们也可以看出:前端传递来的JSON数据没有错误!!主要错误是在后端!!

其实这个主要还是由于person默认的是key--value型,默认从Url中拿,当我们在Url中随便选择一个参数对其赋值,那么,此时我们的效果为:

在Postman中输入:http://localhost:8080/param/m7?id=5

同理,在浏览器中也有着相同的效果:

那么,对于该问题,我们该如何处理呢??

解决方案:

传递JSON数据,需要使用@RequestBoby注解来搭配使用!

参考代码为:

  1. @RestController
  2. @RequestMapping("/param")
  3. public class ParamController {
  4. @RequestMapping("/m7")
  5. public String m7(@RequestBody Person person){
  6. return " 接收到的参数:Person:"+person.toString();
  7. }
  8. }

当我们在Postman再次测试的时候可以发现:

成功解决Bug!!

在这里,我们需要注意的是:

传递JSON数据,使用@RequestBoby,我们传递的JSON数据是在请求正文中的,而不是在Url中传递的!!

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小蓝xlanll/article/detail/165635
推荐阅读
相关标签
  

闽ICP备14008679号