| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869 |
- package com.ims.eval.config;
- import com.alibaba.fastjson.serializer.NameFilter;
- import com.alibaba.fastjson.serializer.SerializeConfig;
- 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.http.converter.StringHttpMessageConverter;
- import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
- import java.nio.charset.Charset;
- import java.util.ArrayList;
- import java.util.List;
- import java.util.TimeZone;
- /**
- * @description:
- * @auther: xugp
- * @date: 2023-03-07
- */
- @Configuration
- public class MyJsonConfig implements WebMvcConfigurer {
- //springboot 默认通过jackson来转化json,@JSONField(....)是fastjson的注解,因此要添加如下配置
- //Long类型在前端js中会丢失精度
- public FastJsonHttpMessageConverter fastJsonHttpMessageConverters() {
- TimeZone.setDefault(TimeZone.getTimeZone("GMT+8"));
- FastJsonHttpMessageConverter fastConverter = new FastJsonHttpMessageConverter();
- FastJsonConfig fastJsonConfig = new FastJsonConfig();
- NameFilter nameFilter = (object, name, value) -> name;
- SerializeConfig serializeConfig = fastJsonConfig.getSerializeConfig();
- // serializeConfig .addFilter(SwaggerWelcomeWebMvc.class, nameFilter);
- // serializeConfig.put(String.class,MyStringSerializer.instance);
- fastJsonConfig.setSerializeConfig(serializeConfig);
- fastJsonConfig.setDateFormat("yyyy-MM-dd HH:mm:ss"); //自定义时间格式
- fastJsonConfig.setSerializerFeatures(
- SerializerFeature.DisableCircularReferenceDetect
- ,SerializerFeature.WriteMapNullValue
- ,SerializerFeature.WriteDateUseDateFormat
- ); //关闭循环引用,正常转换null值,格式化
- fastConverter.setFastJsonConfig(fastJsonConfig);
- List<MediaType> fastMediaTypes = new ArrayList<>();
- fastMediaTypes.add(MediaType.APPLICATION_JSON_UTF8);
- fastConverter.setSupportedMediaTypes(fastMediaTypes);
- // HttpMessageConverter<?> converter = fastConverter;
- return fastConverter;
- }
- public HttpMessageConverter<String> stringConverter() {
- StringHttpMessageConverter converter = new StringHttpMessageConverter(
- Charset.forName("UTF-8"));
- return converter;
- }
- @Override
- public void extendMessageConverters(List<HttpMessageConverter<?>> converters) {
- // converters.clear();
- converters.add(stringConverter());
- // List<HttpMessageConverter<?>> collect = converters.stream().filter(s ->s instanceof StringHttpMessageConverter).collect(Collectors.toList());
- // converters.removeAll(collect);
- converters.add( fastJsonHttpMessageConverters());
- }
- }
|