“明年此日青云去,却笑人间举子忙”
序
刚巧在学习springboot,于是记录起这个知识点,或许以后用得到,也或许可以帮助其他学习者。
使用步骤
- 在pom.xml文件中加入fastjson的依赖
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.47</version>
</dependency>
- 启动文件继承WebMvcConfigurationSupport类
@SpringBootApplication
public class DemoApplication extends WebMvcConfigurationSupport {
}
- 重写configureMessageConverters方法
/**
*@author aRunner
*@date 2019/12/21
*@description 重写configureMessageConverters
*/
@Override
protected void configureMessageConverters(List<HttpMessageConverter<?>> converters) {
super.configureMessageConverters(converters);
//定义一个convert转换消息的对象
FastJsonHttpMessageConverter fastJsonHttpMessageConverter = new FastJsonHttpMessageConverter();
//添加fastjson的配置信息,比如:是否要格式化返回的json数据;
FastJsonConfig fastJsonConfig = new FastJsonConfig();
fastJsonConfig.setSerializerFeatures(SerializerFeature.PrettyFormat);
//在convert中添加配置信息
fastJsonHttpMessageConverter.setFastJsonConfig(fastJsonConfig);
//将convert添加到converts当中
converters.add(fastJsonHttpMessageConverter);
}
- 在实体类中加入测试字段,因为使用框架自带的Jackson返回和使用fastjson返回的数据一直,都是如下图:
所以,为了区分,我们现在使用的是fastjson,加入时间字段,然后使用fastjson格式化时间:
//import com.alibaba.fastjson.annotation.JSONField;
@JSONField(format = "yyyy-MM-dd HH:mm")
private Date time;
- 加入时间后的页面打印结果如下:
发现中文乱码了,下面解决乱码的问题。 - 解决fastjson解析乱码的问题,在第二步:重写configureMessageConverters方法中加入解决乱码代码,如下:
// 解决乱码的问题
List<MediaType> fastMediaTypes = new ArrayList<>();
fastMediaTypes.add(MediaType.APPLICATION_JSON_UTF8);
fastJsonHttpMessageConverter.setSupportedMediaTypes(fastMediaTypes);
converters.add(fastJsonHttpMessageConverter);
再次访问页面,即可看到中文:
来源:CSDN
作者:诺贝尔爱情奖
链接:https://blog.csdn.net/A_Runner/article/details/103642373