在接口的返回对象中,可能会有一些属性为null或者需要禁止某些字段返回给客户端。

在SpringBoot中可使用内置了Jackson实现这个需求

1. 过滤为null字段

在实体类中使用@JsonInclude(JsonInclude.Include.NON_EMPTY)即可过滤调为null的字段

 1 @Data
2 @JsonInclude(JsonInclude.Include.NON_EMPTY)
3 public class UserMessageVo {
4
5 /**
6 * 发送方信息
7 */
8 private UserDetail sendUserInfo;
9
10 /**
11 * 接收方信息
12 */
13 private UserDetail receiveUserInfo;
14
15 /**
16 * 发送信息
17 */
18 private String message;
19
20 /**
21 * 发送时间
22 */
23 private Long createTime;
24
25 /**
26 * 发送方id
27 */
28 private Integer sendId;
29
30 /**
31 * 接收方id
32 */
33 private Integer receiverId;
34
35 /**
36 * 发布事件类型 1: 触发用户聊天记录保存redis事件 2:触发聊天记录保存数据库
37 */
38 private Integer type;
39
40 /**
41 * 聊天记录
42 */
43 private List<LittleMessageHistory> historyList;
44
45 }

2. 过滤指定字段

在实体类上使用@JsonIgnoreProperties(value = {"password"})即可,value可添加多个字段,逗号分割。

 1 @Data
2 @JsonIgnoreProperties(value = {"password"})
3 public class UserDetail {
4
5 private static final long serialVersionUID = 1L;
6
7 /**
8 * 用户id
9 */
10 private Integer id;
11
12 /**
13 * 用户名
14 */
15 private String username;
16
17 /**
18 * 密码
19 */
20 private String password;
21
22 /**
23 * 昵称
24 */
25 private String nickname;
26
27 /**
28 * 手机号
29 */
30 private String phone;
31
32 /**
33 * 邮箱
34 */
35 private String email;
36
37 /**
38 * 状态 0-->禁用 1-->启用
39 */
40 private Integer status;
41
42 /**
43 * 性别 -1-->未知 0-->女 1-->男
44 */
45 private Integer gender;
46
47 /**
48 * 个性签名
49 */
50 private String signature;
51
52 /**
53 * 用户来源 0-->小程序登录 1-->手机号登录
54 */
55 private Integer source;
56 }

3. 客户端返回效果

SpringBoot中Jackson的过滤使用的更多相关文章

  1. Springboot中Jackson的操作

    有一段时间没写博客了,虽然是菜鸟一枚但毕竟总要有东西记录学习的,我相信有志者事竟成.今天在工作中使用Jackson转换了一个javabean,传到测试服上之后发现日期少了一天,使用的是@JsonFor ...

  2. SrpingMVC/SpringBoot中restful接口序列化json的时候使用Jackson将空字段,空字符串不传递给前端

    笔者的JSON如下: { "code": 10001, "message": "成功", "nextUrl": null ...

  3. SpringBoot中使用Jackson导致Long型数据精度丢失问题

    数据库中有一个bigint类型数据,对应java后台类型为Long型,在某个查询页面中碰到了问题:页面上显示的数据和数据库中的数据不一致.例如数据库中存储的是:1475797674679549851, ...

  4. SpringBoot中使用Jackson将null值转化为""或者不返回的配置

    第一种方式:SpringBoot中使用Jackson将null值转化为"" 前言:在实际项目中难免会遇到null值的出现,但是我们转json时并不希望出现NULL值,而是将NULL ...

  5. SpringBoot中使用Fastjson/Jackson对JSON序列化格式化输出的若干问题

    来源 :https://my.oschina.net/Adven/blog/3036567 使用springboot-web编写rest接口,接口需要返回json数据,目前国内比较常用的fastjso ...

  6. SpringBoot系列——Jackson序列化

    前言 Spring Boot提供了与三个JSON映射库的集成: Gson Jackson JSON-B Jackson是首选的默认库. 官网介绍: https://docs.spring.io/spr ...

  7. 由浅入深学习springboot中使用redis

    很多时候,我们会在springboot中配置redis,但是就那么几个配置就配好了,没办法知道为什么,这里就详细的讲解一下 这里假设已经成功创建了一个springboot项目. redis连接工厂类 ...

  8. springboot中使用自定义两级缓存

    工作中用到了springboot的缓存,使用起来挺方便的,直接引入redis或者ehcache这些缓存依赖包和相关缓存的starter依赖包,然后在启动类中加入@EnableCaching注解,然后在 ...

  9. springboot之jackson的两种配置方式

    springboot 针对jackson是自动化配置的,如果需要修改,有两种方式: 方式一:通过application.yml 配置属性说明:## spring.jackson.date-format ...

随机推荐

  1. Java的反射机制一

    Java具有一定的动态性,我们可以利用反射机制,字节码操作来获得类似动态语言的特性. 动态操作对象,构造方法,属性,方法 Demo2 如何取得属性和方法以及构造器 public class Demo2 ...

  2. leetcode TOP100 两数相加

    两数相加 给出两个 非空 的链表用来表示两个非负的整数.其中,它们各自的位数是按照 逆序 的方式存储的,并且它们的每个节点只能存储 一位 数字. 如果,我们将这两个数相加起来,则会返回一个新的链表来表 ...

  3. IT面试最全逻辑题,收藏后成功率提高10%

    这是小学二年级的数学题: 猫妈妈钓到一些鱼,平均分给了7只小猫,每只小猫分到的鱼和剩下的鱼刚好一样多.猫妈妈最多钓到了多少条鱼? 这个是出来工作后的现场面试题: [1]假设有一个池塘,里面有无穷多的水 ...

  4. interpration

    On interpreting the effects of repetition interpreting 释意1. If you interpret something in a particul ...

  5. asp.net c#从SQL2008读取图片显示到网页

    //图像数据表:tx//字段id (nvarchar(50) ,image(image)//tgav为图片ID,实质为上传前的主名 (省略了.jpg) using System; using Syst ...

  6. 【剑指offer】52. 两个链表的第一个公共节点

    剑指 Offer 52. 两个链表的第一个公共节点 知识点:链表: 题目描述 输入两个链表,找出它们的第一个公共节点. 如下面的两个链表: 示例 示例1: 输入:intersectVal = 8, l ...

  7. POJ3667 Hotel 题解

    和最大子段和的思路是一样的,可以记 \(lmax,rmax,dat\) 分别表示从当前区间最靠左/右的最大连续空子段和当前区间的最大连续空子段. 需要用延迟标记,每次遇到开房操作先ask,如果能找到就 ...

  8. BZOJ2457 双端队列 题解

    本题直接求解十分困难,因为在不知道整个序列的数字规律时当前所作决策都无法保证最优性. 考虑正难则反,题目转化为将一个非降序列分成尽量少的几段,让每段对应原问题的双端队列. 先将原数组排序,由于原数组下 ...

  9. 小鹤双拼win10一键恢复布局

    起因 一直用的小鹤双拼布局,最近重装系统又要重新配置,麻烦 尝试 查找对应注册表设置,找到以下路径包含相应配置 HKEY_CURRENT_USER\Software\Microsoft\InputMe ...

  10. SQL之case when then用法_之二

    select CustomerNo, Name, Sex, Birthday, IDType, IDNo, validityday, case (null ) when '1' then '高级VIP ...