Springboot一个注解搞定返回参数key转换功能

作者:小目标青年 时间:2022-06-21 00:11:24 

前言

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

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

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

例如 :

Springboot一个注解搞定返回参数key转换功能

那么需要怎么做的 ? 

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

Springboot一个注解搞定返回参数key转换功能

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

Springboot一个注解搞定返回参数key转换功能

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

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

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

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

其实不然。

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

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

<parent>
   <groupId>org.springframework.boot</groupId>
   <artifactId>spring-boot-starter-parent</artifactId>
   <version>2.7.2</version>
   <relativePath/>
</parent>

Springboot一个注解搞定返回参数key转换功能

实操示例:

写个模拟的调用接口,拿到返回数据 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;
}

可以看到返回值:

Springboot一个注解搞定返回参数key转换功能

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

@JsonProperty

Springboot一个注解搞定返回参数key转换功能

可以看到返回值:

Springboot一个注解搞定返回参数key转换功能

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

@JsonMixin  + @JsonProperty

Springboot一个注解搞定返回参数key转换功能

Springboot一个注解搞定返回参数key转换功能

可以看下返回结果 :

Springboot一个注解搞定返回参数key转换功能

OK,该篇就到这。

合适的业务场景,合适的技术方案。

来源:https://blog.csdn.net/qq_35387940/article/details/127277319

标签:Springboot,参数,key,转换
0
投稿

猜你喜欢

  • Spring Boot如何整合FreeMarker模板引擎

    2022-09-06 15:49:32
  • ActiveMQ安装及部署教程图解

    2023-11-17 18:01:46
  • 详解springboot集成mybatis xml方式

    2022-08-05 09:04:54
  • Android实现带动画效果的可点击展开TextView

    2023-08-06 05:42:08
  • Java毕业设计实战之校园一卡通系统的实现

    2022-11-26 06:32:56
  • SpringBoot文件上传功能的实现方法

    2021-11-23 11:24:27
  • SpringCloud之Config配置中心与Redis分布式锁详解

    2023-12-21 02:14:41
  • java 反射机制详解及实例代码

    2023-01-31 10:26:08
  • Spring-boot的debug调试代码实例

    2023-10-17 04:49:01
  • Java适配器模式_动力节点Java学院整理

    2021-09-06 10:50:53
  • java 面试题闰年判断详解及实例

    2023-11-27 19:09:01
  • 详解AOP与Filter拦截请求打印日志实用例子

    2021-09-26 22:03:10
  • Java实现的Base64加密算法示例

    2023-10-29 00:37:08
  • Java 17 更快的 LTS 节奏

    2023-07-08 11:36:19
  • SpringBoot实现启动项目后立即执行的方法总结

    2022-07-31 15:01:16
  • C#-WinForm跨线程修改UI界面的示例

    2022-01-14 13:25:44
  • C# WinForm导出Excel方法介绍

    2022-12-01 13:25:57
  • 在.NET中读取嵌入和使用资源文件的方法

    2022-03-28 21:46:14
  • springboot v2.0.3版本多数据源配置方法

    2023-07-27 06:37:57
  • Sonar编译问题对应:File [...] can't be indexed twice.

    2023-11-25 11:07:28
  • asp之家 软件编程 m.aspxhome.com