fastjson autoType is not supportエラー
6177 ワード
springboot redis , redis
autoType is not support
static {
ParserConfig.getGlobalInstance().addAccept("com.xxxx.blog"); //com.xxxx.blog ..........
}
package com.xxx.blog.config;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.parser.ParserConfig;
import com.alibaba.fastjson.serializer.SerializerFeature;
import org.springframework.data.redis.serializer.RedisSerializer;
import org.springframework.data.redis.serializer.SerializationException;
import org.springframework.lang.Nullable;
import java.nio.charset.Charset;
/**
* redis
* @since 2018/7/10 10:26
*/
public class FastJsonRedisSerializer<T> implements RedisSerializer<T> {
public static final Charset DEFAULT_CHARSET = Charset.forName("UTF-8");
private Class<T> clazz;
public FastJsonRedisSerializer(Class<T> clazz) {
super();
this.clazz = clazz;
}
static {
ParserConfig.getGlobalInstance().addAccept("com.XXXX.blog");// fastJson autoType is not support
}
@Nullable
@Override
public byte[] serialize(@Nullable T t) throws SerializationException {
if (t == null) {
return new byte[0];
}
return JSON.toJSONString(t, SerializerFeature.WriteClassName).getBytes(DEFAULT_CHARSET);
}
@Nullable
@Override
public T deserialize(@Nullable byte[] bytes) throws SerializationException {
if (bytes == null || bytes.length <= 0) {
return null;
}
String str = new String(bytes, DEFAULT_CHARSET);
return JSON.parseObject(str, clazz);
}
}