1、引jar
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.47</version>
</dependency>
2、在入口类中加入FastJSON配置(@Bean只能在配置类(@Configrution)中出现)
@Bean
public HttpMessageConverters fastjsonHttpMessageConverter(){
//定义一个转换消息的对象
FastJsonHttpMessageConverter fastConverter = new FastJsonHttpMessageConverter();
//添加fastjson的配置信息 比如 :是否要格式化返回的json数据
FastJsonConfig fastJsonConfig = new FastJsonConfig();
fastJsonConfig.setSerializerFeatures(SerializerFeature.PrettyFormat);
//在转换器中添加配置信息
fastConverter.setFastJsonConfig(fastJsonConfig);
HttpMessageConverter<?> converter = fastConverter;
return new HttpMessageConverters(converter);
}
所以可以不加在入口类中,而加在@Configrution修饰的类中 ,如
@Configrution
public class SpringBootConfig{
@Bean
public HttpMessageConverters fastjsonHttpMessageConverter(){
//定义一个转换消息的对象
FastJsonHttpMessageConverter fastConverter = new FastJsonHttpMessageConverter();
//添加fastjson的配置信息 比如 :是否要格式化返回的json数据
FastJsonConfig fastJsonConfig = new FastJsonConfig();
fastJsonConfig.setSerializerFeatures(SerializerFeature.PrettyFormat);
//在转换器中添加配置信息
fastConverter.setFastJsonConfig(fastJsonConfig);
HttpMessageConverter<?> converter = fastConverter;
return new HttpMessageConverters(converter);
}
}
3、处理日期(时间)问题这里提供两种方式
默认如果不处理,会显示:
1)对FastJsonConfig进行修改
结果为:
2)对Customer实体类进行修改
这里采用注解形式
结果为:
同样,根据需求不同选择不同,第一种是全局,第二种为单独处理。
当然,如果同时写入,FastJsonConfig > @JSONField
4、在实体类的属性上添加@JSONField(serialize=false),则该属性不进行序列化,如果是查询则不会显示该属性