SpringBoot中Jackson的过滤使用
在接口的返回对象中,可能会有一些属性为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的过滤使用的更多相关文章
- Springboot中Jackson的操作
有一段时间没写博客了,虽然是菜鸟一枚但毕竟总要有东西记录学习的,我相信有志者事竟成.今天在工作中使用Jackson转换了一个javabean,传到测试服上之后发现日期少了一天,使用的是@JsonFor ...
- SrpingMVC/SpringBoot中restful接口序列化json的时候使用Jackson将空字段,空字符串不传递给前端
笔者的JSON如下: { "code": 10001, "message": "成功", "nextUrl": null ...
- SpringBoot中使用Jackson导致Long型数据精度丢失问题
数据库中有一个bigint类型数据,对应java后台类型为Long型,在某个查询页面中碰到了问题:页面上显示的数据和数据库中的数据不一致.例如数据库中存储的是:1475797674679549851, ...
- SpringBoot中使用Jackson将null值转化为""或者不返回的配置
第一种方式:SpringBoot中使用Jackson将null值转化为"" 前言:在实际项目中难免会遇到null值的出现,但是我们转json时并不希望出现NULL值,而是将NULL ...
- SpringBoot中使用Fastjson/Jackson对JSON序列化格式化输出的若干问题
来源 :https://my.oschina.net/Adven/blog/3036567 使用springboot-web编写rest接口,接口需要返回json数据,目前国内比较常用的fastjso ...
- SpringBoot系列——Jackson序列化
前言 Spring Boot提供了与三个JSON映射库的集成: Gson Jackson JSON-B Jackson是首选的默认库. 官网介绍: https://docs.spring.io/spr ...
- 由浅入深学习springboot中使用redis
很多时候,我们会在springboot中配置redis,但是就那么几个配置就配好了,没办法知道为什么,这里就详细的讲解一下 这里假设已经成功创建了一个springboot项目. redis连接工厂类 ...
- springboot中使用自定义两级缓存
工作中用到了springboot的缓存,使用起来挺方便的,直接引入redis或者ehcache这些缓存依赖包和相关缓存的starter依赖包,然后在启动类中加入@EnableCaching注解,然后在 ...
- springboot之jackson的两种配置方式
springboot 针对jackson是自动化配置的,如果需要修改,有两种方式: 方式一:通过application.yml 配置属性说明:## spring.jackson.date-format ...
随机推荐
- python中的内置函数lambda map filter reduce
p.p1 { margin: 0; font: 12px "Helvetica Neue" } p.p2 { margin: 0; font: 12px "Helveti ...
- WPF教程六:理解WPF中的隧道路由和冒泡路由事件
WPF中使用路由事件升级了传统应用开发中的事件,在WPF中使用路由事件能更好的处理事件相关的逻辑,我们从这篇开始整理事件的用法和什么是直接路由,什么是冒泡路由,以及什么是隧道路由. 事件最基本的用法 ...
- 『与善仁』Appium基础 — 1、Android系统的测试环境搭建
目录 1.Android操作系统简介 (1)Android系统诞生 (2)Android系统的结构 (3)Android测试环境搭建整体思路 2.Java环境安装 (1)JDK8下载 (2)安装JDK ...
- Ubuntu虚拟机基本环境搭建以及参数设置
# 设置root账户密码 sudo passwd root # 修改源镜像(提高下载更新速度) sudo apt-get update pip install open-vm-tools pip in ...
- MAC系统如果碰到报错信息:sudo:command not found
** 一般要考虑最近是否有别人或者自己修改过环境变量,这种报错往往是因为环境变量设置错误导致的. ** 1. 首先要获得创建,或者是打开bash_profile的权限,请在命令行中输入: export ...
- PYTHON 连接SQL2008 导出到EXCEL
#import pymssql from datetime import datetime import pyodbc import os current_dir = os.path.abspath( ...
- Intellij idea 设置关闭自动更新
目录结构: File -> Settings- -> Appearance & Behavior -> System Settings -> Updates 把Auto ...
- 夏壹队——nabcd
我们团队项目名称是TD校园通,无课表查询你作为主要功能,是一个亮眼的功能. 我们的无课表查询功能主要解决大家平时上自习还要到教学楼拍照,教室课程情况也有断更的时候,而这个功能就解决大家的这个功能,能够 ...
- 10分钟系列:NetCore3.1+EFCore三步快速完成数据库交互
前言 做程序开发,不管是什么语言什么数据库,其中的ORM(对象关系映射)是必不可少的,但是不管选择哪一种ORM,都需要了解其中的运行机制,配置帮助类等等. 所以很多ORM都开始进行升级封装,我们只需要 ...
- Scala学习——模式匹配
scala模式匹配 1.基础match case(类似java里switch case,但功能强大些) object MatchApp { def main(args: Array[String]): ...