springboot允许空值返回前端

package com.aiqin.mgs.market.api.config;

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.ResourceHandlerRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurationSupport;

import java.nio.charset.Charset;
import java.util.ArrayList;
import java.util.List;

/**

  • description: fastjson处理返回的参数为null、或者不返回

  • date: 2019/11/22 15:03

  • version: 1.0

  • springboot 处理返回结果中字段为空或为null,不展示字段的问题(字段展示不全)
    */
    @Configuration
    public class FastJsonConfiguration extends WebMvcConfigurationSupport {

    /**

    • 使用阿里 fastjson 作为JSON MessageConverter

    • @param converters
      */
      @Override
      public void configureMessageConverters(List<HttpMessageConverter<?>> converters) {
      FastJsonHttpMessageConverter converter = new FastJsonHttpMessageConverter();
      FastJsonConfig config = new FastJsonConfig();
      config.setSerializerFeatures(
      // 保留map空的字段
      SerializerFeature.WriteMapNullValue,
      // 将String类型的null转成""
      SerializerFeature.WriteNullStringAsEmpty,
      // 将Number类型的null转成0
      SerializerFeature.WriteNullNumberAsZero,
      // 将List类型的null转成[]
      SerializerFeature.WriteNullListAsEmpty,
      // 将Boolean类型的null转成false
      SerializerFeature.WriteNullBooleanAsFalse,
      // 避免循环引用
      SerializerFeature.DisableCircularReferenceDetect);

      converter.setFastJsonConfig(config);
      converter.setDefaultCharset(Charset.forName(“UTF-8”));
      List mediaTypeList = new ArrayList<>();
      // 解决中文乱码问题,相当于在Controller上的@RequestMapping中加了个属性produces = “application/json”
      mediaTypeList.add(MediaType.APPLICATION_JSON);
      converter.setSupportedMediaTypes(mediaTypeList);
      converters.add(converter);
      }

    /**

    • 整合了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/”);
      }

}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值