当前位置: 首页 > news >正文

【Bug合集】——Java大小写引起传参失败,获取值为null的解决方案

 8e19eee2be5648b78d93fbff2488137b.png

阿华代码,不是逆风,就是我疯

你们的点赞收藏是我前进最大的动力!!

希望本文内容能够帮助到你!!

目录

一:本文面向的人群

二:错误场景引入

三:正确场景引入

四:问题解决

五:解决方法

1:public修饰

2:使用@JsonProperty注解


一:本文面向的人群

本文主要针对类中成员变量命名问题引起传送json字符串,但是变量为null的情况做出解释。

其中涉及到@Data注解(Spring自动生成的get和set方法)和@JsonProperty

二:错误场景引入

我用postman进行json对象传输给Student类,帮助Student类进行初始的过程中,发现Student并没有拿到json中的参数,于是我展开的研究

Student类我使用了@Data注解进行Object类方法的重写(其中包含get和set方法)

@Data
public class Student {//@JsonPropertyprivate Integer ID;private String name;private Integer age;
}

我们在反编译文件中可以看到 

现在我们进行测试

@RequestMapping("test")public String test(@RequestBody Student student){System.out.println();return "返回的参数为"+student;}

 使用postman中json格式进行传参,帮助Student初始化,并返回student

可以看到我们进行JSON格式的传参下,Student并没有接收到ID这个参数1,说明就是,set方法没有拿到参数ID=1

三:正确场景引入

现在我们把Student类中的成员变量ID设置为小写的id,再来进行测试

对应的get和set方法

postman测试,可以看见,我们的Student类顺利的拿到了JSON中传过来的参数

四:问题解决

因为SpringBoot中生成的方法都是小写字段,这是重点。

Student类中ID成员变量是私有的,需要通过get和set方法进行获取和设置,我们通过@Data注解(SpringBoot中内置)来写get和set方法,这两个方法默认都是小写字段,所以跟我们传过来的JSON对象中的大写字段“ID”匹配不上,进而就赋值失败,为null。

五:解决方法

1:public修饰

我们将Student中的私有成员变量设置为public

2:使用@JsonProperty注解

Springboot返回前端的JSON会有个自动大小写转换,加上这个注解就限制了,就能获取到值了

@Data
public class Student {@JsonPropertyprivate Integer ID;private String name;private Integer age;
}

http://www.lryc.cn/news/488310.html

相关文章:

  • Python爬虫:如何从1688阿里巴巴获取公司信息
  • 单片机学习笔记 2. LED灯闪烁
  • 折叠光腔衰荡高反射率测量技术的matlab模拟理论分析
  • ubuntu 16.04 中 VS2019 跨平台开发环境配置
  • C语言第13节:指针(3)
  • java:简单小练习,面积
  • @Autowired 和 @Resource思考(注入redisTemplate时发现一些奇怪的现象)
  • PostgreSQL提取JSON格式的数据(包含提取list指定索引数据)
  • 如何利用谷歌浏览器提高网络安全
  • go-zero(四) 错误处理(统一响应信息)
  • 1.1 爬虫的一些知识(大模型提供语料)
  • Linux开发工具:Vim 与 gcc,打造高效编程的魔法双剑
  • cesium for unity的使用
  • Android AOSP 架构和各层次开发内容介绍
  • Kafka 到 Kafka 数据同步
  • 华为刷题笔记--题目索引
  • osgEarth加载倾斜摄影测量数据
  • 消息推送问题梳理-团队管理
  • 如何在 Ubuntu 上使用 Docker 部署 LibreOffice Online
  • MongoDB数据备份与恢复(内含工具下载、数据处理以及常见问题解决方法)
  • 代码随想录第三十一天| 56. 合并区间 738.单调递增的数字
  • C语言基本知识 2.2void 函数
  • Spring 框架中哪些接口可以创建对象
  • 豆瓣书摘 | 爬虫 | Python
  • Oracle数据库物理存储结构管理
  • java——Map接口
  • 量子计算机全面解析:技术、应用与未来
  • IDEA相关(包括但不限于快捷键,使用技巧)成长笔记
  • 【再谈设计模式】适配器模式 ~接口兼容的桥梁
  • 使用Cursor和Claude AI打造你的第一个App