Springboot 一个注解搞定返回参数key转换 【实用】

简介: Springboot 一个注解搞定返回参数key转换 【实用】

前言



平时在搬砖的时候,大家有没有遇到过这样的一个场景,由于各种不可描述因素导致,

一个接口返回的数据 里面的 key 是 A , 但是客户端(前端) 要求返回的key 不叫 A 叫 Aa 。


也就是返回的值不变,就是key 换了。


例如 :


image.png


正文



那么需要怎么做的 ?

① 新写一个类,用于值的返回,拿到值,把属性 get set 一下。


image.png


② 也就是本篇文章想提到的 ,使用注解, @JsonProperty


image.png


这个很多人都知道, 绕半天原来是 炒冷饭 ? 且慢。


② 这种方式,其实是一种入侵时调整, 前提是你有权限能够改到 原来的 类的 属性的代码 。


但是也有情况是,这个返回的类,你用的是别人的jar引入的, 那就没办法直接改人家代码。


这时候,大多数的人可能也就只有使用 ① 情况了。


其实不然。



③ 也是这篇想提到的 ,非入侵式的 转换返回数据的key, 同样也是通过注解方式实现, 也就是 @JsonMixin  + @JsonProperty


ps :  springboot 2.7版本以上 支持 @JsonMixin


org.springframework.boot
   spring-boot-starter-parent
   2.7.2


image.png


实操示例:


写个模拟的调用接口,拿到返回数据 Student:


@GetMapping("/queryById")
public Student queryById( Integer id){
    Student student=new Student();
    student.setId(id);
    student.setName("JCccc");
    student.setAge(20);
    student.setMobile("136XXXXXXXX");
    return student;
}


可以看到返回值:


image.png


先看 入侵式的, 也就是在原来的返回数据的类上面去使用  @JsonProperty  :


@JsonProperty


image.png


可以看到返回值:


image.png


再看非入侵式的, 创建一个 抽象类 PhoneKeyConvert , 可以指定单个或多个类, 在返回数据的时候,自动转换key:


@JsonMixin  + @JsonProperty


image.png

image.png


可以看下返回结果 :

image.png


OK,该篇就到这。

相关文章
|
2月前
|
Java 开发者 Spring
【SpringBoot 异步魔法】@Async 注解:揭秘 SpringBoot 中异步方法的终极奥秘!
【8月更文挑战第25天】异步编程对于提升软件应用的性能至关重要,尤其是在高并发环境下。Spring Boot 通过 `@Async` 注解简化了异步方法的实现。本文详细介绍了 `@Async` 的基本用法及配置步骤,并提供了示例代码展示如何在 Spring Boot 项目中创建与管理异步任务,包括自定义线程池、使用 `CompletableFuture` 处理结果及异常情况,帮助开发者更好地理解和运用这一关键特性。
125 1
|
2月前
|
缓存 Java 数据库连接
Spring Boot奇迹时刻:@PostConstruct注解如何成为应用初始化的关键先生?
【8月更文挑战第29天】作为一名Java开发工程师,我一直对Spring Boot的便捷性和灵活性着迷。本文将深入探讨@PostConstruct注解在Spring Boot中的应用场景,展示其在资源加载、数据初始化及第三方库初始化等方面的作用。
53 0
|
15天前
|
缓存 前端开发 Java
springboot 的单体服务 字典参数转译
本文介绍了如何在Spring Boot项目中使用缓存来管理字典参数,并确保前后端数据一致性。首先,通过`@EnableCaching`启用缓存功能,接着创建一个自定义的字典缓存类`DicCache`。然后,通过配置类将`DicCache`添加到`cacheManager`中。此外,对字典服务进行改造,使用`@CachePut`和`@CacheEvict`注解保证数据一致性。最后,实现自定义注解`@DicSerializer`和序列化处理类`DictSerializerHandel`,用于在序列化过程中自动转换字典值。通过这种方式,可最小化代码改动并提高系统性能。
springboot 的单体服务 字典参数转译
|
9天前
|
Java Spring 容器
Spring使用异步注解@Async正确姿势
Spring使用异步注解@Async正确姿势,异步任务,spring boot
|
9天前
|
JSON Java 数据格式
springboot 参数统一处理
springboot 参数统一处理
|
8天前
|
XML Java 数据格式
spring复习03,注解配置管理bean
Spring框架中使用注解配置管理bean的方法,包括常用注解的标识组件、扫描组件、基于注解的自动装配以及使用注解后的注意事项,并提供了一个基于注解自动装配的完整示例。
spring复习03,注解配置管理bean
|
9天前
|
XML 前端开发 Java
控制spring框架注解介绍
控制spring框架注解介绍
|
22天前
|
Java 数据库连接 数据格式
【Java笔记+踩坑】Spring基础2——IOC,DI注解开发、整合Mybatis,Junit
IOC/DI配置管理DruidDataSource和properties、核心容器的创建、获取bean的方式、spring注解开发、注解开发管理第三方bean、Spring整合Mybatis和Junit
【Java笔记+踩坑】Spring基础2——IOC,DI注解开发、整合Mybatis,Junit
|
9天前
|
Java Spring
spring boot 启动项目参数的设定
spring boot 启动项目参数的设定
下一篇
无影云桌面