2023年6月23日发(作者:)
⽖哇基础之@JsonIgnore注解专属⽬录⽖哇基础 之 @JsonIgnore 注解前⾔⽇常Java开发时,会经常与前端开发、ios 或 安卓开发,进⾏数据交互,前⾯我们也说了使⽤json 序列化后交互,可是⼜有⼀个头疼的问题,那就是⼀般返回到前端的实体类中,是有⼀些属性不想暴露出去,⽐如 ⽤户的密码,还有⼀些⾃增的ID等等⼀些不需要的信息。⽽有时候也有⾃⾝的原因,想偷懒不想专门写个
VO、DTO、PO ,可那些多余的字段前端⼜不需要,我们⼜该如何处理呢!今天我们就来说下仅⽤⼀个注解,即可搞定以上问题!这个注解就是 ——
@JsonIgnore ,它是
Jackson
注解包 下的⼀个注解!具体 Jackson 如何使⽤,可点击查看!作⽤@JsonIgnore 的作⽤到底是什么呢!它的作⽤就是在后端给前端数据的时候对后端发送出的json字符串能够发挥作⽤的⼀个注解,可以忽略不想传递给前台的属性或接⼝如果不使⽤此注解的话,在json序列化时将java bean中的⼀些属性删除掉后,对于前端是不需要,可是我们后端操作的时候却是需要的,如 ⽤户的密码字段,前端并不需要返回,但是后端操作逻辑处理,验证登录等等都是需要的,如果将属性删掉,就⽆法使⽤ set/get ⽅法,也就失去了对数据的操作!使⽤那@JsonIgnore 该如何使⽤呢?下⾯我们来写⼀个简单的实例来清楚的看下效果!正常不使⽤注解写法pojo 实体类ckage ;import sConstructor;import ;import Constructor;import izable;import ;/** * @ClassName: User * @Description: (描述) * @Author: WHT * @Version: V1.0 * @Date: 2020/11/5 17:55 */@Data@NoArgsConstructor@AllArgsConstructorpublic class User implements Serializable { private Integer id; private String username; private String password; private Integer age; private Integer sex; private Integer status; private Date date; private static final long serialVersionUID = 1L;}Example类ample类
Mybatis 逆向⼯程直接⽣成即可!如果还不会逆向⼯程的话,可查看以下⽂章,点击即可查看进⼀步学习!Service 逻辑层 (接⼝)package e;import ;import ;/** * @ClassName: UserService * @Description: (描述) * @Author: WHT * @Version: V1.0 * @Date: 2020/11/6 11:54 */public interface UserService { List
as user_age, as user_sex, user.`status` as `user_status`, user.`date` as `user_date` Controller 控制层 控制层package ller;import ocessingException;import Mapper;import ;import rvice;import ry;import detail;import red;import ller;import tMapping;import seBody;import ;/** * @ClassName: UserController * @Description: (描述) * @Author: WHT * @Version: V1.0 * @Date: 2020/11/5 17:55 */@Controller@RequestMapping("/user")public class UserController { @Autowired private UserService userService; @ResponseBody @RequestMapping("list") public String getUserList() throws JsonProcessingException { List
@JsonIgnore 注解即可完美解决!修改后的实体类ckage ;import nore;import sConstructor;import ;import Constructor;import izable;import ;/** * @ClassName: User * @Description: (描述) * @Author: WHT * @Version: V1.0 * @Date: 2020/11/5 17:55 */@Data@NoArgsConstructor@AllArgsConstructorpublic class User implements Serializable { @JsonIgnore //加了注解 private Integer id; private String username; @JsonIgnore private String password; private Integer age; private Integer sex; @JsonIgnore private Integer status; @JsonIgnore private Date date; private static final long serialVersionUID = 1L;}此时可以发现我只有对
username 、
age 、
sex 三个属性没有添加注解!最后我们重启服务,重新测试查看结果!添加注解后测试结果亮点来了!最终测试发现,结果只有没有加注解的三个属性及对应的值,其余属性都没有返回![ { "username": "zhangsan", "age": 20, "sex": 0 }]注意⚠
发布者:admin,转转请注明出处:http://www.yc00.com/news/1687517267a16334.html
评论列表(0条)