Parcourir la source

Merge branch 'master' of https://git.steerinfo.com/caol/jg_wzjl_api

dengyj il y a 3 ans
Parent
commit
fad8a9399f
1 fichiers modifiés avec 48 ajouts et 0 suppressions
  1. 48 0
      src/main/java/com/steerinfo/config/fastJsonConfig.java

+ 48 - 0
src/main/java/com/steerinfo/config/fastJsonConfig.java

@@ -0,0 +1,48 @@
+package com.steerinfo.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.WebMvcConfigurationSupport;
+
+import java.nio.charset.Charset;
+import java.util.ArrayList;
+import java.util.List;
+
+@Configuration
+public class fastJsonConfig 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<MediaType> mediaTypeList = new ArrayList<>();
+        // 解决中文乱码问题,相当于在Controller上的@RequestMapping中加了个属性produces = "application/json"
+        mediaTypeList.add(MediaType.APPLICATION_JSON);
+        converter.setSupportedMediaTypes(mediaTypeList);
+        converters.add(converter);
+    }
+}