json空值字段过滤与保留

在项目中遇到一个问题,当从后端获取到的用户权限菜单以JSON格式返回给前端时,空值字段被自动过滤。解决这个问题的方法包括在实体类上添加注解、配置文件设置或使用Fastjson。本文介绍了在Spring Boot应用中,通过引入Fastjson并配置ResultConfig类成功保留JSON中的空值字段。
摘要由CSDN通过智能技术生成

项目场景:

配置管理平台:不同企业下的不同用户,它们的角色不同,自然所拥有的权限也不同。
项目场景:现在需要获取,登录用户所拥有权限的菜单。


问题描述:

将用户所拥有权限的菜单查询出来,放入菜单资源树形结构类里,以JSON的格式传给返回给前端。此时,实体里有空值的字段被省略,没有传给前端。

在实际业务中,不论返回实体里的字段是否为空,有需求都要显示出来的情况很多,如果为空可以显示为null。


解决方案: 

反例:

Spring MVC中,在controller层使用@ResponseBody返回json时,这里使用的是jackson

在使用@ResponseBody注解时,返回的对象中,有的字段为空,如果想字段为空时,或者字段为默认值时,不返回该字段。有一下三种方法:

1. 在实体类上添加注解

优点方便灵活,缺点需要在每一个实体上进行配置

import com.fasterxml.jackson.annotation.JsonInclude;
​
@JsonInclude(JsonInclude.Include.NON_NULL)
public class OrderDTO {
  
}
​
//将该标记放在属性上,如果该属性为NULL则不参与序列化 
//如果放在类上边,那对这个类的全部属性起作用 
//Include.Include.ALWAYS 默认 
//Include.NON_DEFAULT 属性为默认值不序列化 
//Include.NON_EMPTY 属性为 空(“”) 或者为 NULL 都不序列化 
//Include.NON_NULL 属性为NULL 不序列化 

2. 在配置文件中配置

配置完成后,所有通过@res

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值