@JsonInclude(JsonInclude.Include.NON_NULL) 不生效问题,不返还null给前端

Java 技术教程:@JsonInclude(JsonInclude.Include.NON_EMPTY) 注解详解 是Jackson库提供的一个注解,用于控制JSON序列化的行为。它可以在类级别或字段级别使用,以决定哪些字段应该被包含在最终的JSON输出中。ALWAYS:默认行为,任何情况下都序列化。NON_NULL:仅当字段不为null时序列化。:仅当字段不是其类型的默认值时序列化。NON_EMPTY:当字段为空字符串(“”)、null、空集合或数组时不序列化。NON_ABSENT:类似于NON_NULL,但对于类型,即使为null也会被序列化。CUSTOM:使用自定义的序列化逻辑。:当。 阅读详情

文章参考:点击调整

项目中使用的是:fastJson进行序列化,然后就是,返回给前端多余字段

直接使用,是不生效的。

@JsonInclude(JsonInclude.Include.NON_NULL)

实现WebMvcConfigurationSupport


 
import com.alibaba.fastjson.serializer.SerializerFeature;
import com.alibaba.fastjson.support.config.FastJsonConfig;
import com.alibaba.fastjson.support.spring.FastJsonHttpMessageConverter;
import org.springframework.context.annotation.Configuration;
import org.springframework.http.MediaType;
import org.springframework.http.converter.HttpMessageConverter;
import org.springframework.web.servlet.config.annotation.CorsRegistry;
import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurationSupport;
 
import java.nio.charset.Charset;
import java.util.ArrayList;
import java.util.List;
 

@Configuration
public class FastJsonConfiguration extends WebMvcConfigurationSupport {
 
    /**
     * 使用阿里 fastjson 作为JSON MessageConverter
     * @param converters
     */
   @Override
    public void configureMessageConverters(List<HttpMessageConverter<?>> converters) {
        Iterator<HttpMessageConverter<?>> iterator = converters.iterator();
        while(iterator.hasNext()){
            HttpMessageConverter<?> converter = iterator.next();
            if(converter instanceof MappingJackson2HttpMessageConverter){
                iterator.remove();
            }
        }
        //创建fastJson消息转换器
        FastJsonHttpMessageConverter fastConverter = new FastJsonHttpMessageConverter();
        //升级最新版本需加=============================================================
        List<MediaType> supportedMediaTypes = new ArrayList<>();
        supportedMediaTypes.add(MediaType.APPLICATION_JSON);
        supportedMediaTypes.add(MediaType.APPLICATION_ATOM_XML);
        supportedMediaTypes.add(MediaType.APPLICATION_FORM_URLENCODED);
        supportedMediaTypes.add(MediaType.APPLICATION_OCTET_STREAM);
        supportedMediaTypes.add(MediaType.APPLICATION_PDF);
        supportedMediaTypes.add(MediaType.APPLICATION_RSS_XML);
        supportedMediaTypes.add(MediaType.APPLICATION_XHTML_XML);
        supportedMediaTypes.add(MediaType.APPLICATION_XML);
        supportedMediaTypes.add(MediaType.IMAGE_GIF);
        supportedMediaTypes.add(MediaType.IMAGE_JPEG);
        supportedMediaTypes.add(MediaType.IMAGE_PNG);
        supportedMediaTypes.add(MediaType.TEXT_EVENT_STREAM);
        supportedMediaTypes.add(MediaType.TEXT_HTML);
        supportedMediaTypes.add(MediaType.TEXT_MARKDOWN);
        supportedMediaTypes.add(MediaType.TEXT_PLAIN);
        supportedMediaTypes.add(MediaType.TEXT_XML);
        fastConverter.setSupportedMediaTypes(supportedMediaTypes);
        //创建配置类
        FastJsonConfig fastJsonConfig = new FastJsonConfig();
        //修改配置返回内容的过滤
        //WriteNullListAsEmpty  :List字段如果为null,输出为[],而非null
        //WriteNullStringAsEmpty : 字符类型字段如果为null,输出为"",而非null
        //DisableCircularReferenceDetect :消除对同一对象循环引用的问题,默认为false(如果不配置有可能会进入死循环)
        //WriteNullBooleanAsFalse:Boolean字段如果为null,输出为false,而非null
        //WriteMapNullValue:是否输出值为null的字段,默认为false
        fastJsonConfig.setSerializerFeatures(
                SerializerFeature.QuoteFieldNames,
                SerializerFeature.DisableCircularReferenceDetect,
                SerializerFeature.WriteEnumUsingToString,
//                SerializerFeature.WriteMapNullValue,
                SerializerFeature.WriteDateUseDateFormat
        );
        fastConverter.setFastJsonConfig(fastJsonConfig);
        //将fastjson添加到视图消息转换器列表内
        converters.add(fastConverter);
    }
 
//    /**
//     * 整合了swagger需要配置swagger拦截
//     * @param registry
//     */
//    @Override
//    public void addResourceHandlers(ResourceHandlerRegistry registry) {
//        registry.addResourceHandler("swagger-ui.html","index.html").addResourceLocations("classpath:/META-INF/resources/");
//        registry.addResourceHandler("doc.html").addResourceLocations("classpath:/META-INF/resources/");
//        registry.addResourceHandler("/webjars/**").addResourceLocations("classpath:/META-INF/resources/webjars/");
//        registry.addResourceHandler("/static/**").addResourceLocations("classpath:/META-INF/resources/static/");
//    }
//
//
//    @Override
//    public void addCorsMappings(CorsRegistry registry) {
//        registry.addMapping("/**")
//                .allowedOrigins("*")
//                .allowCredentials(true)
//                .allowedMethods("GET", "POST", "PUT", "DELETE", "OPTIONS")
//                .maxAge(3600);
//    }
 
}


效果图
在这里插入图片描述

SpyGlass CDC实战:如何用sgdc约束文件解决跨时钟域报错(附常见错误排查) 本文详细介绍了如何使用SpyGlass CDC工具链中的sgdc约束文件解决跨时钟域(CDC)报错问题。从基础约束文件架构到复杂场景调试,涵盖了时钟域定义、复位信号约束、Waiver策略等关键技巧,并附有常见错误排查方法,帮助工程师高效处理CDC验证挑战。 阅读详情

相关推荐

Unity 接入HybridCLR的点点滴滴,亲测三平台(PC、Android、WebGL)妥妥的。-问题分享

一入热更深似海啊,没有热更是真恼火啊,干啥啥不方便,动不动就得重新发包;说实在的,也是工作之余研究这个,在原有框架基础上接入这个热更,既要保持原有功能,还要支持热更,实实在在、断断续续搞了这么久,终于是接入并测通了,这一路是坎坎坷坷,下面把走过的弯弯绕绕记录下,希望对后来想接入的小伙伴有帮助吧。

GarFe的博客 1万+

jsoninclude.include.non_null 不起作用问题

@JsonInclude(JsonInclude.Include.NON_NULL) 注解,1、类上加注解 2、把不起作用属性名改为非驼峰命名法,亦有效。3、属性前加 @JsonProperty 注解,

傲慢的上校的专栏 4658

深入解析路科验证V0实验lab1:SV接口与时钟块实战

本文深入解析了路科验证V0实验Lab1的核心内容,重点阐述了SystemVerilog接口与时钟块在验证环境搭建中的关键作用。通过拆解router_io接口设计、时钟块同步机制及程序块封装,详细讲解了如何构建稳定可靠的验证通信基础,并提供了复位时序分析与常见调试技巧,为后续复杂验证打下坚实基础。

peach的博客 430

@JsonInclude注解失效原因

学些心得

qq_34696709的博客 2716

PyTorch模型生产部署:ONNX/Triton导出与高可用架构实战

机器学习模型部署本质是训练环境与生产环境之间的运行时契约建立过程,涉及序列化协议、推理引擎兼容性、动态批处理及资源隔离等核心问题。ONNX凭借标准化算子集和跨框架支持,成为平衡兼容性、性能与可维护性的首选导出格式;Triton Inference Server则通过原生多框架支持、动态batching和热加载能力,显著提升GPU利用率与服务SLA保障水平。在金融风控、电商推荐等高要求场景中,基于ONNX+Triton+K8s的分层架构可稳定支撑千级QPS与毫秒级P95延迟,同时满足模型热更新、可观测性与版本

weixin_33857679的博客 447

告别版本冲突!在Ubuntu 20.04上优雅实现ROS Noetic与ROS2 Foxy双环境切换

本文详细介绍了在Ubuntu 20.04系统上实现ROS Noetic(ROS1)与ROS2 Foxy双环境共存与切换的完整方案。通过智能脚本设计和工作空间隔离,解决了版本冲突问题,帮助开发者高效管理不同ROS版本项目。特别适合需要同时开发ROS1和ROS2应用的机器人开发者。

weixin_28452161的博客 407

@JsonInclude之NON_NULL不生效问题

今天在使用JsonInclude的NON_NULL定义对象属性返回的情况时,开始出现的结果不是自己预期的,查询原因发现和继承有关 定义父级对象: @Data public class BaseEntity implements Serializable { private static final long serialVersionUID = 1L; /** * 搜索值 */ private String searchValue; /**

Aubergines的专栏 4291

从频谱分析到硬件加速:用ZYNQ-7020+FFT IP核实现实时信号处理的完整方案

本文详细介绍了如何利用ZYNQ-7020和FFT IP核实现实时信号处理的完整方案,涵盖系统架构设计、硬件加速实现及性能优化。通过异构计算架构,该方案将1024点FFT处理延迟压缩至28μs,显著提升工业自动化和无线通信等领域的实时频谱分析效率。

weixin_33704234的博客 467

jackSon中@JsonInclude注解详解

jackSon中@JsonInclude注解详解 前言 比如说我有个场景,返回前端的实体类中如果某个字段为空的话那么就不返回这个字段了,如果我们平时遇到这个问题,那么真的该脑壳疼了。幸亏有我们今天的主角,这个注解就是用来在实体类序列化成json的时候在某些策略下,加了该注解的字段不去序列化该字段。 @JsonInclude用法 JsonJsonInclude.Include.ALWAYS 这个是默认策略,任何情况下都序列化该字段,和不写这个注解是一样的效果。 JsonJsonInclude.Include.

gsc1456的博客 689

史上最全的Logisim存储系统实验教程(基于华中科技大学计算机组成原理实验)内赋源码下载

本博客是最全的最好的解释的华中科技大学计算机组成实验存储系统实验,本博客给出了电路实现,也给出了使用电路的原因有利于新手学习十分详细。并且内赋源码下载。

qq_62325622的博客 2万+

第78篇:AI辅助创意与设计工作流——Logo、海报、UI的自动化生成与迭代(操作教程)

在广告公司和设计团队摸爬滚打几年,我见过太多设计师为一个Logo的配色、一张海报的版式反复修改到深夜。自从AI绘画工具爆发,我就一直在琢磨,怎么把这些“黑科技”真正塞进设计师的日常流水线里,而不是让它们仅仅是个玩具。今天要聊的,就是一套我实践下来,能真正提升效率的AI辅助创意与设计工作流。我们不谈颠覆,只谈增效——如何用AI快速完成Logo、海报、UI的灵感生成、批量出图与智能迭代,把设计师从重复劳动中解放出来,聚焦在真正的创意决策上。

weixin_37464284的博客 537

@JsonInclude(JsonInclude.Include.NON_EMPTY)失效

@JsonInclude(JsonInclude.Include.NON_EMPTY)失效

Enki的博客 737

【Unity引擎技术整合】 Unity学习路线 | 知识汇总 | 持续更新 | 保持乐趣 | 共同成长

本文对Unity引擎的知识进行了一个整理总结,基本包含了Unity中大部分的知识介绍。 网上也有很多Unity相关的学习资料,但大多数都不成体系,学起来的时候难免会东奔西走的摸不着头脑。 本文整理的多数文章都是有对应的系列性文章专栏,可以更方便的进行系统学习相关知识体系。

努力前行,总会成为自己心中的那道光 15万+

关于使用@JsonInclude(JsonInclude.Include.NON_NULL)标签去除json数据中的空值问题

@JsonInclude(JsonInclude.Include.NON_NULL)标记是jackson包提供的json序列化方法,已经集成于Springboot2.0中,此方法的配置意在可以对实体json序列化的时候进行对应的数值处理, //将该标记放在属性上,如果该属性为NULL则不参与序列化 //如果放在类上边,那对这个类的全部属性起作用 //Include.Include.ALWAY...

qq_31404603的博客 3万+

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

@JsonInclude(JsonInclude.Include.NON_NULL)注解

1. 用法含义:为null的字段不序列化 2. 示例 @JsonInclude(JsonInclude.Include.NON_NULL) public class Response { private String name; private String targetId; private String characteristic; } 假设这个Response类是返回给前端的响应。如果字段characteristic为null,加上该注解后前端拿到的响应格...

a24b86的博客 1万+

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

@JsonInclude(Include.NON_NULL) 用法与使用场景

@JsonInclude(Include.NON_NULL) 前端的同学要求说尽量不要有null,可有为空串“” 或者 0 或者 [], 但尽量不要null。   所以@JsonInclude(Include.NON_NULL) 这个注解放在类头上就可以解决。 实体类与json互转的时候 属性值为null的不参与序列化    import com.fasterxml.jackson.an...

Jaylon Wang的专栏 1万+

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

springboot @JsonInclude(JsonInclude.Include.NON_NULL)

Spring_Boot专栏 上一篇 主目录 下一篇 在springboot项目中,发送请求后得到响应回来的json,把它封装成某一class实体类,如果某一属性为空,在转化为json时,字段值为null的字段不显示。 @Data public class ApiRespBaseVo extends ApiBaseVo { /** * @Fields serialVersionUID ...

ShaneHolmes 2363

@JsonInclude(Include.NON_NULL)

前端的同事要求说尽量不要有null,可有为空串“” 或者 0 或者 [], 但尽量不要null。  所以@JsonInclude(Include.NON_NULL) 这个注解放在类头上就可以解决。 实体类与json互转的时候 属性值为null的不参与序列化  import com.fasterxml.jackson.annotation.JsonInclude;import com.fasterx...

ostar_liang的专栏 1万+

@JsonInclude(JsonInclude.Include.NON_NULL)表示在序列化时,仅包含非 null 的字段(即排除值为 null 的字段)。

这是 Jackson 库()提供的一个注解,用于控制在序列化(将 Java 对象转换为 JSON)时哪些属性应该包含在 JSON 中。它帮助你根据特定条件排除某些字段,比如当字段值为 null 或满足某个特定条件时,可以不将该字段包括在生成的 JSON 中。:这是一个枚举值,表示在序列化时,仅包含非null的字段(即排除值为null的字段)。的意思:在序列化时,仅包含非null的字段,排除值为null的字段。这确保 JSON 输出紧凑,避免返回无意义的数据。“没有被初始化或映射为非null。

小丁的博客 1524

@JsonInclude(JsonInclude.Include.NON_NULL)标签去除json数据中的空值

JsonInclude

qq_40925546的博客 4960

@JsonInclude(JsonInclude.Include.NON_NULL)不起作用

记录一下使用@JsonInclude(JsonInclude.Include.NON_NULL)不起作用的原因。 我想要的结果是如果只给code赋值,其他属性不赋值,那么我调用接口返回的结果里面只有code。但是遇到其他属性也存在着的情况(为null)。 原因:我在controller层使用了一个抽象controller类,该类里的A方法会把Object类对象转换成JSON对象,就是这个A方法的...

monongLY的博客 8352

@JsonInclude(value=JsonInclude.Include.NON_NULL)含义

​在实体类上面加@JsonInclude(value=JsonInclude.Include.NON_NULL)注解,可以使当前实体类在返回前端的时候忽略字段属性为null的字段,使其为null字段不显示。 加注解前和加注解后效果:

Ahuuua的博客 1372

java中如何让封装的实体类不返回为空的属性:@JsonInclude(JsonInclude.Include.NON_NULL)

这就导致很多数据为null,后来了解到还是有注解滴,那就是==@JsonInclude(JsonInclude.Include.NON_NULL)==今天在做需求的时候,遇到一个第三方对接的问题,对方要求的数据格式为只需要有值的字段,如果有的字段没有值的话,就不要传过去。如果简单的话,那我直接使用map创造几条数据就完事了,但是由于数据类型的不同,需求不同,对很多地段都有可能有值或者为空。这个注解就是不管有没有值,这个字段都不会返回到前端。将此注解加到对应的字段就可以。

世上哪有什么岁月静好,不过是有人替你负重前行 1587

@JsonInclude(value=JsonInclude.Include.NON_NULL)注解使用

在实体类上面加@JsonInclude(value=JsonInclude.Include.NON_NULL)注解,可以使当前实体类在返回前端的时候忽略字段属性为null的字段,使其为null字段不显示。 加注解前和加注解后效果 ...

zzj的博客 7350

SpringBoot中使用Jackson时善用@JsonInclude(JsonInclude.Include.NON_NULL)和@JsonIgnoreProperties(ignoreUnknow

本文介绍了SpringBoot中使用Jackson处理JSON序列化与反序列化的两种常见场景。通过@JsonInclude(JsonInclude.Include.NON_NULL)注解可自动排除序列化时值为null的字段,使JSON更简洁;使用@JsonIgnoreProperties(ignoreUnknown=true)注解可防止反序列化时因JSON包含未知属性而报错。文章提供了相应的单元测试示例,并指出SpringBoot自动配置的ObjectMapper默认已关闭未知属性报错功能。同时给出了两种配

BADAO_LIUMANG_QIZHI的博客 500
上一篇: web socket做实时推送
下一篇: 封装LambdaUtil 减少项目中的 if -else 判断
一个大泥球
博客等级 码龄9年 41粉丝 93原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值