# SpringBoot Fastjson 集成

📆 2022-02-25 11:27

# java11

@Configuration
public class ProjectWebMvcConfig implements WebMvcConfigurer {
    @Override
    public void configureMessageConverters(List<HttpMessageConverter<?>> converters) {
        // 删除原有的 jackson 消息转换器
        var toRemove=converters.stream().filter(item->(item instanceof MappingJackson2HttpMessageConverter)).collect(Collectors.toList());
        converters.removeAll(toRemove);

        var converter=new FastJsonHttpMessageConverter();

        var config=new FastJsonConfig();
        config.setSerializerFeatures(
            SerializerFeature.WriteMapNullValue,
            SerializerFeature.WriteNullStringAsEmpty,
            SerializerFeature.WriteNullNumberAsZero,
            SerializerFeature.WriteNullListAsEmpty,
            SerializerFeature.WriteNullBooleanAsFalse,
            SerializerFeature.WriteDateUseDateFormat,
            SerializerFeature.WriteBigDecimalAsPlain,
            SerializerFeature.DisableCircularReferenceDetect
        );
        config.setDateFormat("yyyy-MM-dd hh:mm:ss");
        
        var serializeConfig=SerializeConfig.globalInstance;
        serializeConfig.put(Long.class, ToStringSerializer.instance);
        serializeConfig.put(Long.TYPE, ToStringSerializer.instance);
        serializeConfig.put(BigDecimal.class, ToStringSerializer.instance);
        config.setSerializeConfig(serializeConfig);
        
        converter.setFastJsonConfig(config);
        converter.setDefaultCharset(Charset.forName("UTF-8"));
        converter.setSupportedMediaTypes(List.of(MediaType.APPLICATION_JSON));

        converters.add(converter);
    }
}

# java8

@Configuration
public class ProjectWebMvcConfig implements WebMvcConfigurer {
    @Override
    public void configureMessageConverters(List<HttpMessageConverter<?>> converters) {
        // 删除原有的 jackson 消息转换器
        List<HttpMessageConverter<?>> toRemove=converters.stream().filter(item->(item instanceof MappingJackson2HttpMessageConverter)).collect(Collectors.toList());
        converters.removeAll(toRemove);

        FastJsonHttpMessageConverter converter=new FastJsonHttpMessageConverter();

        FastJsonConfig config=new FastJsonConfig();
        config.setSerializerFeatures(
            SerializerFeature.WriteMapNullValue,
            SerializerFeature.WriteNullStringAsEmpty,
            SerializerFeature.WriteNullNumberAsZero,
            SerializerFeature.WriteNullListAsEmpty,
            SerializerFeature.WriteNullBooleanAsFalse,
            SerializerFeature.WriteDateUseDateFormat,
            SerializerFeature.WriteBigDecimalAsPlain,
            SerializerFeature.DisableCircularReferenceDetect
        );
        config.setDateFormat("yyyy-MM-dd hh:mm:ss");
        
        SerializeConfig serializeConfig=SerializeConfig.globalInstance;
        serializeConfig.put(Long.class, ToStringSerializer.instance);
        serializeConfig.put(Long.TYPE, ToStringSerializer.instance);
        serializeConfig.put(BigDecimal.class, ToStringSerializer.instance);
        config.setSerializeConfig(serializeConfig);
        
        converter.setFastJsonConfig(config);
        converter.setDefaultCharset(Charset.forName("UTF-8"));
        converter.setSupportedMediaTypes(Arrays.asList(MediaType.APPLICATION_JSON));

        converters.add(converter);
    }
}
最后更新于: 3/8/2022, 5:41:17 PM