在SpringBoot 中启用Fastjson转换

默认springboot中,当前端传过来数据,转换为JSON时,默认使用的是框架自带的jackson,当我们想要使用alibaba的fastjson时,可以做如下配置。

引入依赖

  1. 先在pom.xml中引入相关依赖

        
            com.alibaba
            fastjson
            1.2.36
        

配置

两种方式

  1. bean注入HttpMessageConverters:
/*
    * 启用fastjson 的转换
    * */
    @Bean
    public HttpMessageConverters fastJsonHttpMessageConverters() {
        FastJsonHttpMessageConverter fastConverter = new FastJsonHttpMessageConverter();
        FastJsonConfig fastJsonConfig = new FastJsonConfig();
        fastJsonConfig.setSerializerFeatures(SerializerFeature.PrettyFormat);
        fastConverter.setFastJsonConfig(fastJsonConfig);
        return new HttpMessageConverters(fastConverter);
    }

2.继承WebMvcConfigurerAdapter,重写configureMessageConverters方法

@Configuration
public class WebMvcConfigurer  extends WebMvcConfigurerAdapter {
    @Override
    public void configureMessageConverters(List> converters) {
        FastJsonHttpMessageConverter converter = new FastJsonHttpMessageConverter();
        //自定义配置...
        FastJsonConfig fastJsonConfig = new FastJsonConfig();
  fastJsonConfig.setDateFormat("yyyy-MM-dd HH:mm:ss");    // 自定义时间格式
        fastJsonConfig.setSerializerFeatures(
                //配置美观的输出格式
                SerializerFeature.PrettyFormat,
                //配置输出空值
                SerializerFeature.WriteMapNullValue,
                //将字符串类型字段的空值输出为空字符串 ""
                SerializerFeature.WriteNullStringAsEmpty);
        converter.setFastJsonConfig(fastJsonConfig);
        converters.add(converter);
    }
}

不序列化某个字段

比如我们把user表的数据取出来给前台,密码的字段肯定是不能显示的,这样我们可以配置,让某个字段不序列化

@JSONField(serialize=false) 
private String pwd;

这样,就可以启用fasjson作为默认的转换器了

你可能感兴趣的:(在SpringBoot 中启用Fastjson转换)