分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 运营维护

利用@jsonView注解来实现自定义返回字段

发布时间:2023-09-06 01:49责任编辑:蔡小小关键词:jsjson

业务场景:比如说一个User对象,有两个字段,一个username,一个password,有一个获取用户信息的接口要返回这个User列表,但是不想要这个User列表的password字段。

还有一个接口要获取这个User列表,要全部字段。

解决场景:我们可以有多种方法,比如说获取list之后把user列表的密码全部设为空,然后再用其他注解来设置  为空的字段不显示

还可以在sql中就不查password字段。

但是  我们要介绍这个注解来实现这个功能。@jsonView  

需要三步即可:

  • 第一:用接口来声明多个视图
  • 第二:在值对象的get方法上指定视图
  • 第三:在controller方法上指定视图

话不多说~~~看代码------》

User.java

package com.imooc;import com.fasterxml.jackson.annotation.JsonView;import lombok.AllArgsConstructor;import lombok.Setter;/** * Created by 敲代码的卡卡罗特 * on 2018/4/14 22:58. */@Setter@AllArgsConstructorpublic 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; ???}}
View Code

在user对象中声明两个接口(视图),一个继承另一个,你懂得!!!然后在字段的get方法上声明视图

Controller.java

@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; ???}
View Code

在controller中声明视图   自己看下结果吧。

利用@jsonView注解来实现自定义返回字段

原文地址:https://www.cnblogs.com/coder-lzh/p/8836617.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved