SpringCloud使用FastJsonHttpMessageConverter遇到的坑
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SpringCloud使用FastJsonHttpMessageConverter遇到的坑相关的知识,希望对你有一定的参考价值。
参考技术A 1.序列化到前台时时间变成时间戳,没有时间格式,SpringBoot自带的配置时间序列化格式因为已经被替换了实现类所以不在生效,需要使用fastJson的时间设置方式@JSONField(format ="yyyy-MM-dd HH:mm:ss")在实体类上加上次注解即可。2.在序列话到前台时候fastjson遍历集合会存在对象被返回的情况,以及所有请求被拦截,但是处理不是很理想的情况,贴出配置供参考
FastJsonHttpMessageConverterCustomextends 当作一个Bean注册
public class FastJsonHttpMessageConverterCustomextends FastJsonHttpMessageConverter
private static SetsupportedMediaTypes;
public FastJsonHttpMessageConverterCustom()
supportedMediaTypes =new HashSet<>();
supportedMediaTypes.add(MediaType.APPLICATION_JSON);
supportedMediaTypes.add(MediaType.APPLICATION_JSON_UTF8);
@Override
public boolean canRead(Type type, Class contextClass, MediaType mediaType)
return this.supports(contextClass) &&supportedMediaTypes.contains(mediaType);
@Override
public boolean canWrite(Type type, Class clazz, MediaType mediaType)
return super.supports(clazz) &&supportedMediaTypes.contains(mediaType);
@Override
protected void writeInternal(Object object, HttpOutputMessage outputMessage)throws IOException, HttpMessageNotWritableException
OutputStream out = outputMessage.getBody();
String text = JSON.toJSONString(object, SerializerFeature.DisableCircularReferenceDetect);
byte[] bytes = text.getBytes("utf-8");
out.write(bytes);
以上是关于SpringCloud使用FastJsonHttpMessageConverter遇到的坑的主要内容,如果未能解决你的问题,请参考以下文章