利用@jsonView注解来实现自定义返回字段
实现 利用 自定义 返回 注解
2023-09-11 14:15:07 时间
业务场景:比如说一个User对象,有两个字段,一个username,一个password,有一个获取用户信息的接口要返回这个User列表,但是不想要这个User列表的password字段。
还有一个接口要获取这个User列表,要全部字段。
解决场景:我们可以有多种方法,比如说获取list之后把user列表的密码全部设为空,然后再用其他注解来设置 为空的字段不显示
还可以在sql中就不查password字段。
但是 我们要介绍这个注解来实现这个功能。@jsonView
需要三步即可:
- 第一:用接口来声明多个视图
- 第二:在值对象的get方法上指定视图
- 第三:在controller方法上指定视图
话不多说~~~看代码------》
User.java
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
package com.imooc; import com.fasterxml.jackson.annotation.JsonView; import lombok.AllArgsConstructor; import lombok.Setter; /** * Created by 敲代码的卡卡罗特 * on 2018/4/14 22:58. */ @Setter @AllArgsConstructor public class User { public interface UserInfo{}; public interface UserDetail extends UserInfo{}; private String name; private String password; @JsonView(UserInfo.class) public String getName() { return name; } @JsonView(UserDetail.class) public String getPassword() { return password; } }
在user对象中声明两个接口(视图),一个继承另一个,你懂得!!!然后在字段的get方法上声明视图
Controller.java
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
@GetMapping("/hello") @JsonView(User.UserInfo.class) public HashMap hello() { HashMap hashMap = new HashMap(); User user1 = new User("liu","123"); User user2 = new User("zhang","456"); hashMap.put("u1",user1); hashMap.put("u2",user2); return hashMap; }
在controller中声明视图 自己看下结果吧。
相关文章
- GPT 如此强大,我们可以利用它实现什么?
- 利用自定义web-font实现数据防采集
- 安全之路 —— 利用APC队列实现跨进程注入
- 安全之路 —— C/C++实现利用添加注册表项实现文件自启动
- Entity Framework 6.X实现记录执行的SQL功能
- 利用guava来实现本地的cache缓存
- 二叉树,二叉树的归先序遍历,中序遍历,后序遍历,递归和非递归实现
- 图像或轮廓的Hu矩的定义、优缺点、适用范围,并利用OpenCV的函数HuMoments()和matchShapes()实现Hu矩的计算和轮廓匹配
- 利用OpenCV的函数split()和merge()实现通道的分离与合并
- FluxCD 实现 kubernetes 应用秒级自动发布和回滚
- 利用Java操作Jenkins API实现对Jenkins的控制详解
- 基于C语言+MySQL实现(控制台)图书馆借书系统【100010553】
- 基于C++实现(控制台)表达式转换【100010508】
- 基于Java(jsp+servlet)+Mysql实现的(Web)宿舍管理系统【100010103】
- SwiftUI 重构大全之利用范型简化修饰器 实现组件旋转任意角度
- (数据科学学习手札65)利用Python实现Shp格式向GeoJSON的转换
- 微信小程序云开发轻松实现用户openid的获取
- 利用Hessian如何实现Webservice
- vue项目实现列表页-详情页返回不刷新,再点其他菜单项返回刷新的需求
- 深度学习 Day29——利用Pytorch实现咖啡豆识别
- 利用Python爬虫实现百度网盘自动化添加资源