首页 > 编程语言 >springboot中自定义JavaBean返回的json对象属性名称大写变小写问题

springboot中自定义JavaBean返回的json对象属性名称大写变小写问题

时间:2023-06-25 21:01:19浏览次数:37  
标签:返回 springboot 自定义 json 注解 JavaBean 属性

目录

开发过程中发现查询返回的数据出现自定义的JavaBean的属性值大小写格式出现问题,导致前端无法接受到数据,目前有四种解决方法,根据大佬的经验之谈,前两种是最简单便捷的,后两种是比较通用的方法。

具体原因如下图:

一、继承类

一般在vo层(可自行理解,阿里巴巴的编程规范)自定义JavaBean来封装数据返回给前端,都是需要用到多表查询,或者有额外的属性增加时需要创建。

例如:人的javaBean最好的方式是继承一个学生的javaBean在添加新的属性,这样再人的JavaBean中没有问题,学生的JavaBean返回的数据也是正常的,不会出现因为@Data注解导致的bug。

二、手动添加Get方法

这有可能是由于Lombok中的@Data注解导致的bug,手动添加get和set方法也可以解决该问题。(尝试了返回的格式是正常的)

三、@JsonProperty

其它博主的解决方案:字段属性加上注解@JsonProperty("aAnimalId")指定序列化后的名称,字段属性的get方法加上注解@JsonIgnore

本人尝试的结果:在字段属性加上注解@JsonProperty("aAnimalId"),接口返回数据的key就恢复正常了,或许是我和@Data混用的原因。但是分析了一下发现结果如下:

结果分析:

把首字母变成大小,从而和springboot返回json对象把字母变成小写相互抵消,从而导致可以返回正常的格式(自我理解,不确定对不对),但问题de到解决。各位可以尝试尝试,能解决开发问题的就是好办法。

四、spring-boot json(jackson)属性命名策略

全局配置命名策略,未尝试,大佬叫我了解了解,会有一定的收获。

spring:
  jackson:
    property-naming-strategy: SNAKE_CASE

记录每一个学习瞬间

标签:返回,springboot,自定义,json,注解,JavaBean,属性
From: https://www.cnblogs.com/MrDevil-k/p/17503947.html

相关文章

  • 异步注解@Async使用自定义线程池
    1.@Async注解@Async是java中一个注解,其作用就是加上该注解的类或方法能够异步执行任务,该注解添加到方法上时,表示该方法是异步方法,添加到类上时,表示该类中的所有方法都是异步方法。该注解的代码为:可以看出其是作用在类和方法上,能够在运行时被获取到。当在使用@Async时,如果不指......
  • SpringBoot + Ant Design Vue实现数据导出功能
    (SpringBoot+AntDesignVue实现数据导出功能)一、需求以xlsx格式导出所选表格中的内容要求进行分级设置表头颜色。二、前端代码实现2.1显示实现首先我们需要添加一个用于到导出的按钮上去,像这样的:<a-button@click="exportBatchlistVerify">批量导出</a-button>至......
  • 记一次曲折的fastjson事件应急响应
    01事件背景介绍某内部应急演练中,安全部门收到通知,称公司内部资产被入侵,且可能已经开始内网横向入侵,现需根据流量情况进行安全事件分析。02事件分析过程通过数据包发现10.X.X.2对80.X.X.1/24使用扫描器发起扫描,包括80.X.X.12,80.X.X.48,80.X.X.61查看源IP80.X.X.12外连情况发现无......
  • springboot加切面日志
    packageorg.rest.util;importjava.lang.annotation.ElementType;importjava.lang.annotation.Retention;importjava.lang.annotation.RetentionPolicy;importjava.lang.annotation.Target;@Target({ElementType.TYPE,ElementType.METHOD})@Retention(RetentionP......
  • 利用SpringBoot和javafx进行桌面开发
    原文合集地址如下,有需要的朋友可以关注本文地址合集地址众所周知,SpringBoot是一款强大的Javaweb开发程序,这得益于其构造了一个Spring容器,然后通过依赖注入和控制反转,维护起一套Java对象和实例的管理机制,方便开发者去使用。在web应用开发的应用中,Springboot在Java层应用非常广,同样的......
  • 利用SpringBoot和javafx进行桌面开发
    原文合集地址如下,有需要的朋友可以关注本文地址合集地址众所周知,SpringBoot是一款强大的Javaweb开发程序,这得益于其构造了一个Spring容器,然后通过依赖注入和控制反转,维护起一套Java对象和实例的管理机制,方便开发者去使用。在web应用开发的应用中,Springboot在Java层应用非常广,......
  • Python 中的 JSON 操作:简单、高效的数据交换格式
    在现代的数据交换和存储中,JSON(JavaScriptObjectNotation)作为一种轻量级的数据交换格式,备受青睐。它不仅易于阅读和理解,还可以灵活地表达和存储高维数据。本文将介绍如何在Python中操作JSON文件,实现数据的序列化和反序列化。1.JSON数据格式JSON格式采用键值对的方式......
  • D365: 将多个关联的表数据转换为JSON格式
    最近碰到一个需求,将D365系统中的多个关联表的数据转换成JSON格式导出然后上传到blobstorage,实现方式记录一下,以便将来使用首先在调用是引用usingNewtonsoft.Json,usingSystem.IO引用后,我们用到两个classSystem.IO.StringWriterNewtonsoft.Json.JsonTextWriter分别定义这......
  • SpringBoot用@Async实现异步调用
    @Async的使用1、在启动类中加上注解@EnableAsync启用异步 2、在使用异步的方法上加上注解@Async,自己写一个线程池,指定线程池。不建议使用默认的线程池。 在线程池应用中,参考阿里巴巴java开发规范:线程池不允许使用Executors去创建,不允许使用系统默认的线程池,推荐通过T......
  • springboot~stateless4j实现状态机
    状态机,包括了状态和动作,某个状态下,只能执行某些动作,如果动作不匹配,状态是不会进行变更了,这样就保护了我们状态字段的准备性,不能随意改变,必须按着我们设计的规则进行状态的轮转。Stateless实现的状态机Stateless:Stateless是一个简单且易于使用的状态机库,它提供了基本的状态转换......