第三方的Json框架能实现默认框架不能实现的功能,带来一些便利,如FastJson:
①使用@JSONField(format=“yyyy-MM-dd HH:mm”)设置时间格式
②使用@JSONField(serialize=false)设置该属性不进行json转换
SpringBoot安装FastJson步骤:
1、首先在pom中添加依赖:
2、使用FastJson的方法(有两种):
①在启动类中继承WebMvcConfigurerAdapter类,然后覆盖configureMessageConverters方法:
// extends WebMvcConfigurerAdapter
@Override
public void configureMessageConverters(
List
super.configureMessageConverters(converters);
/*
*1.首先定义一个convert转换消息的对象
2.添加fastJson的配置信息,比如:是否要格式化返回的json数据
3.在convert中添加配置信息
4.将convert添加到converters
*/
//1.首先定义一个convert转换消息的对象
FastJsonHttpMessageConverter fastConverter=new FastJsonHttpMessageConverter();
//2.添加fastJson的配置信息,比如:是否要格式化返回的json数据
FastJsonConfig fastJsonConfig=new FastJsonConfig();
fastJsonConfig.setSerializerFeatures(SerializerFeature.PrettyFormat);
//3.在convert中添加配置信息
//处理中文乱码问题
List
fastMediaTypes.add(MediaType.APPLICATION_JSON_UTF8);
fastConverter.setSupportedMediaTypes(fastMediaTypes);
fastConverter.setFastJsonConfig(fastJsonConfig);
//4.将convert添加到converters
converters.add(fastConverter);
}
注意到这里在配置中添加utf-8支持才能解析中文,至少我本机是这样
②使用@Bean构建HttpMessageConverters对象
/**
* 在这里我们使用@Bean注入 fastJsonHttpMessageConverters
* @return
*/
@Bean
public HttpMessageConverters fastJsonHttpMessageConverters(){
//1.首先定义一个convert转换消息的对象
FastJsonHttpMessageConverter fastConverter=new FastJsonHttpMessageConverter();
//2.添加fastJson的配置信息,不如:是否要格式化返回的json数据
FastJsonConfig fastJsonConfig=new FastJsonConfig();
fastJsonConfig.setSerializerFeatures(SerializerFeature.PrettyFormat);
//3.在convert中添加配置信息
//处理中文乱码问题
List
fastMediaTypes.add(MediaType.APPLICATION_JSON_UTF8);
fastConverter.setSupportedMediaTypes(fastMediaTypes);
fastConverter.setFastJsonConfig(fastJsonConfig);
//4.将convert添加到converters
HttpMessageConverter> converter=fastConverter;
return new HttpMessageConverters(converter);
}
这两种方法原理相同,作用也是相同的。