框架默认提供基于fastJosn的HttpMessageConverters实现,默认情况下关闭
代码实现
@Bean
@ConditionalOnProperty(value = "xy.core.http.message.converter.enable", havingValue = "true")
public HttpMessageConverters httpMessageConverters() {
//1、创建FastJson信息转换对象
FastJsonHttpMessageConverter fastConverter = new FastJsonHttpMessageConverter();
//2、创建FastJsonConfig对象并设定序列化规则 序列化规则详见SerializerFeature类中,后面会讲
FastJsonConfig fastJsonConfig = new FastJsonConfig();
fastJsonConfig.setSerializerFeatures(
SerializerFeature.QuoteFieldNames,
SerializerFeature.WriteMapNullValue,
SerializerFeature.DisableCircularReferenceDetect,
SerializerFeature.WriteDateUseDateFormat,
SerializerFeature.WriteNullStringAsEmpty
);
//本人就坑在WriteNonStringKeyAsString 将不是String类型的key转换成String类型,否则前台无法将Json字符串转换成Json对象
//3、中文乱码解决方案
List<MediaType> fastMediasTypes = new ArrayList<MediaType>();
fastMediasTypes.add(new MediaType(MediaType.APPLICATION_JSON, Charset.forName("UTF-8")));
fastConverter.setSupportedMediaTypes(fastMediasTypes);
//4、将转换规则应用于转换对象
fastConverter.setFastJsonConfig(fastJsonConfig);
log.info("loading HttpMessageConverters............");
return new HttpMessageConverters(fastConverter);
}
开发配置
xy.core.http.message.converter.enable=true