Spring-boot替換框架json為fastjson
阿新 • • 發佈:2019-01-07
第一步: pom.xml
中刪除預設的 jackson
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<exclusions>
<exclusion>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId >jackson-databind</artifactId>
</exclusion>
</exclusions>
</dependency>
第二步: pom.xml
中引用fastjson
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.45</version>
</dependency >
第三步: 啟動類中配置
@SpringBootApplication //申明讓spring boot自動給程式進行必要的配置
public class AppStart extends WebMvcConfigurerAdapter {
public static void main(String[] args) {
SpringApplication.run(AppStart.class, args);
}
/**
* 替換框架json為fastjson
*/
@Override
public void configureMessageConverters(List<HttpMessageConverter<?>> converters) {
super.configureMessageConverters(converters);
FastJsonHttpMessageConverter fastConverter = new FastJsonHttpMessageConverter();
FastJsonConfig fastJsonConfig = new FastJsonConfig();
fastJsonConfig.setSerializerFeatures(
SerializerFeature.PrettyFormat,
SerializerFeature.WriteMapNullValue,
SerializerFeature.WriteNullNumberAsZero,
SerializerFeature.WriteNullStringAsEmpty
);
// 處理中文亂碼問題
List<MediaType> fastMediaTypes = new ArrayList<>();
fastMediaTypes.add(MediaType.APPLICATION_JSON_UTF8);
fastConverter.setSupportedMediaTypes(fastMediaTypes);
fastConverter.setFastJsonConfig(fastJsonConfig);
//處理字串, 避免直接返回字串的時候被添加了引號
StringHttpMessageConverter smc = new StringHttpMessageConverter(Charset.forName("UTF-8"));
converters.add(smc);
converters.add(fastConverter);
}
}