开发者社区> 小目标青年> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

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,该篇就到这。

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
Springboot | @RequestBody 接收到的参数对象属性为空
Springboot | @RequestBody 接收到的参数对象属性为空
0 0
Spring参数的自解析--还在自己转换?你out了!
背景前段时间开发一个接口,因为调用我接口的同事脾气特别好,我也就不客气,我就直接把源代码发给他当接口定义了。 没想到同事看到我的代码问:要么 get a,b,c 要么 post [a,b,c]。这么写可以自动解析?他们一直都是自己转换成list。
0 0
参数校验Spring的@Valid注解用法详解(上)
参数校验Spring的@Valid注解用法详解
0 0
参数校验Spring的@Valid注解用法详解(下)
参数校验Spring的@Valid注解用法详解
0 0
SpringBoot 实战:在 RequestBody 中优雅的使用枚举参数
本文先上实战,说一下如何实现。在 优雅的使用枚举参数 代码的基础上,我们继续实现。如果想要获取源码,可以关注公号「看山的小屋」,回复 spring 即可。
0 0
SpringBoot 返回参数为null,不返回的处理
SpringBoot 整合 fastjson Springboot处理返回的参数为null、或者不返回 一、通过继承WebMvcConfigurerAdapter,重写configureMessageConverters方法实现 @Configuration public class fast.
1607 0
Spring Boot @ControllerAdvice 处理全局异常,返回固定格式Json
参考文章: Spring Boot @ControllerAdvice 处理全局异常,返回固定格式Json 解决spring boot中rest接口404,500等错误返回统一的json格式 spring boot最新教程(五):404错误500错误统...
2161 0
+关注
小目标青年
分享不仅为了他人,也为了自己 。--JCccc
文章
问答
文章排行榜
最热
最新
相关电子书
更多
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
冬季实战营第三期:MySQL数据库进阶实战
立即下载