一、前言
spring boot默认使用jackson来操作json数据,相比于jackson,fastjson更好用,功能也强大,所以这里记录一下在spring boot中配置使用fastjson的方法。
二、添加依赖
在pom.xml中添加以下依赖:
<dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version>1.2.32</version> </dependency>
三、在启动类(含main函数的那个类)中添加以下代码:
@Bean public HttpMessageConverters fastJsonHttpMessageConverters(){ //1、先定义一个convert转换消息的对象 FastJsonHttpMessageConverter fastConverter=new FastJsonHttpMessageConverter(); //2、添加fastjson的配置信息,比如是否要格式化返回的json数据; FastJsonConfig fastJsonConfig=new FastJsonConfig(); fastJsonConfig.setSerializerFeatures(SerializerFeature.PrettyFormat); //附加:处理中文乱码 List<MediaType> fastMedisTypes = new ArrayList<MediaType>(); fastMedisTypes.add(MediaType.APPLICATION_JSON_UTF8); fastConverter.setSupportedMediaTypes(fastMedisTypes); //3、在convert中添加配置信息 fastConverter.setFastJsonConfig(fastJsonConfig); HttpMessageConverter<?> converter=fastConverter; return new HttpMessageConverters(converter); }
四、测试
假如实体类中有一个Date类型的属性time,则可以使用@JSONField()注解来制定返回的日期格式
@JSONField(format = "yyyy-MM-dd HH:mm:ss") private Date time;
这样在返回json数据的时候,time就会被解析成“年-月-日 时:分:秒”的形式,还可以通过注解@JSONField(serialize = false)来决定一个字段是否被包含在返回的json中。更多用法可以参考:http://kimmking.github.io/2017/06/06/json-best-practice/