SpringBoot 返回参数为null,不返回的处理

简介: SpringBoot 整合 fastjson Springboot处理返回的参数为null、或者不返回 一、通过继承WebMvcConfigurerAdapter,重写configureMessageConverters方法实现 @Configuration public class fast.

SpringBoot 整合 fastjson

Springboot处理返回的参数为null、或者不返回

一、通过继承WebMvcConfigurerAdapter,重写configureMessageConverters方法实现

 @Configuration
 public class fastJsonConfig extends WebMvcConfigurerAdapter {
     @Autowired
     private LogCostInterceptor logCostInterceptor;
 
     /**
      * 使用阿里 fastjson 作为JSON MessageConverter
      * @param converters
      */
     @Override
     public void configureMessageConverters(List<HttpMessageConverter<?>> converters) {
         FastJsonHttpMessageConverter converter = new FastJsonHttpMessageConverter();
         FastJsonConfig config = new FastJsonConfig();
         config.setSerializerFeatures(
                 //json格式输出
                 SerializerFeature.PrettyFormat,
                 // 保留map为空的字段
                 SerializerFeature.WriteMapNullValue,
                 // 将String类型的null转成""形式
                 SerializerFeature.WriteNullStringAsEmpty,
                 // 将Number类型的null转成0,也可以理解为Integer
                 SerializerFeature.WriteNullNumberAsZero,
                 // 将List类型的null转成[],而不是“””
                 SerializerFeature.WriteNullListAsEmpty,
                 // Boolean类型的null转成false
                 SerializerFeature.WriteNullBooleanAsFalse,
                 // 处理可能循环引用的问题
                 SerializerFeature.DisableCircularReferenceDetect);
         converter.setFastJsonConfig(config);
         converter.setDefaultCharset(Charset.forName("UTF-8"));
         List<MediaType> mediaTypeList = new ArrayList<>();
         mediaTypeList.add(MediaType.APPLICATION_JSON);
         converter.setSupportedMediaTypes(mediaTypeList);
         converters.add(converter);
     }
 }

二、在Springboot启动类中

 @Bean
 public HttpMessageConverters fastJsonConverters() {
     FastJsonHttpMessageConverter4 fastConverter = new FastJsonHttpMessageConverter4();
     FastJsonConfig fastJsonConfig = new FastJsonConfig();
     fastJsonConfig.setSerializerFeatures(SerializerFeature.PrettyFormat, SerializerFeature.IgnoreNonFieldGetter,
             SerializerFeature.WriteMapNullValue, SerializerFeature.WriteNullStringAsEmpty);
     fastConverter.setFastJsonConfig(fastJsonConfig);
     List supportedMediaTypes = new ArrayList();
     supportedMediaTypes.add(new MediaType("text", "json", Charset.forName("utf8")));
     supportedMediaTypes.add(new MediaType("application", "json", Charset.forName("utf8")));
     fastConverter.setSupportedMediaTypes(supportedMediaTypes);
     HttpMessageConverter<?> converter = fastConverter;
     return new HttpMessageConverters(converter);
 }

三、 在实体类中,添加: @JSONField注解,如果为false,接口中不会返回这个字段。

 @JSONField(serialize = false)
 private String password;

源码获取:
github
欢迎关注公众号,查看更多内容 :
XG54_9_WXMH_5X_HB_H_7V

相关文章
|
15天前
|
Java 数据库连接 Spring
Spring Boot命令行启动添加参数
Spring Boot命令行启动添加参数
|
1月前
|
XML Java 数据库连接
spring boot 参数的过滤注解与实战
在Spring Boot应用中,对于入参的过滤,通常会涉及到对Web层的数据验证和处理。Spring Boot借助Spring框架提供了强大的验证框架支持,主要基于JSR-303/JSR-380(Bean Validation API)规范,以及Spring自身的@Valid或@Validated注解来实现请求参数的验证。以下是一些常见的使用案例来展示如何对参数进行过滤和验证。
29 1
|
2月前
|
JSON 前端开发 Java
SpringBoot 的优雅的接口参数验证
1. 为什么需要参数验证 在应用程序的开发中,我们经常会遇到需要保证传入参数的正确性的情况。例如,当我们在注册用户时,需要验证用户填写的表单数据是否符合规范,是否缺少必填字段,或者格式是否正确,等等。如果不对参数进行验证,我们的应用程序可能会因此受到攻击或者运行出错。 为了保证参数的正确性,我们需要使用参数验证机制,来检测并处理传入的参数格式是否符合规范。 2. 如何进行参数验证 Spring Boot内置了一个很强大的参数验证框架——JSR 303 Bean Validation 标准,它可以对我们的实体类参数进行校验,并且可以给我们提供详细的错误提示信息。
50 1
|
1月前
|
缓存 前端开发 Java
【二十八】springboot之通过threadLocal+参数解析器实现同session一样保存当前登录信息的功能
【二十八】springboot之通过threadLocal+参数解析器实现同session一样保存当前登录信息的功能
32 1
|
2天前
|
前端开发 Java
SpringBoot之实体参数的详细解析
SpringBoot之实体参数的详细解析
10 0
|
4天前
|
JSON Java 数据格式
Spring Boot实现各种参数校验
这些是Spring Boot中实现参数校验的一些常见方法,你可以根据项目需求选择适合的方式来进行参数校验。
11 0
|
23天前
|
Java
SpringBoot中静态类使用配置文件经常遇到读取为NULL的情况,现在我就告诉大家。
SpringBoot中静态类使用配置文件经常遇到读取为NULL的情况,现在我就告诉大家。
9 0
|
1月前
|
存储 NoSQL 前端开发
【SpringBoot】Redis集中管理Session和自定义用户参数解决登录状态及校验问题
【SpringBoot】Redis集中管理Session和自定义用户参数解决登录状态及校验问题
|
1月前
|
前端开发 Java Maven
spring boot3参数校验基本用法
spring boot3参数校验基本用法
42 2
|
1月前
|
算法 Java 开发工具
使用阿里云KMS产品针对 Springboot 接口参数加密解密功能
针对Springboot里面使用开源工具使用加解密,替换成阿里云KMS产品进行加解密;
144 1