fastjson
fastjson copied to clipboard
class com.alibaba.fastjson.JSONObject cannot be cast to class cn.cai.domain.User (com.alibaba.fastjson.JSONObject and cn.cai.domain.User are in unnamed module of loader 'app')
ä¾èµ:
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>2.0.14</version>
</dependency>
public class FastJsonRedisSerializer<T> implements RedisSerializer<T> {
public static final Charset DEFAULT_CHARSET = StandardCharsets.UTF_8;
private final Class<T> clazz;
public FastJsonRedisSerializer(Class<T> clazz) {
super();
this.clazz = clazz;
}
// åºåå
@Override
public byte[] serialize(T t) throws SerializationException {
if (null == t) {
return new byte[0];
}
return JSON.toJSONString(t, SerializerFeature.WriteClassName).getBytes(DEFAULT_CHARSET);
}
// ååºåå
@Override
public T deserialize(byte[] bytes) throws SerializationException {
if (null == bytes || bytes.length <= 0) {
return null;
}
String str = new String(bytes, DEFAULT_CHARSET);
return (T) JSON.parseObject(str, clazz);
}
}
é ç½®ï¼
@Configuration
@EnableCaching
public class RedisConfig extends CachingConfigurerSupport {
@Bean
public RedisTemplate<String, Object> redisTemplate(LettuceConnectionFactory lettuceConnectionFactory) {
// 设置åºåå
//使ç¨fastjsonåºåå
FastJsonRedisSerializer<Object> fastJsonRedisSerializer = new FastJsonRedisSerializer<Object>(Object.class);
// é
ç½®redisTemplate
RedisTemplate<String, Object> redisTemplate = new RedisTemplate<>();
// è¿æ¥å·¥å
redisTemplate.setConnectionFactory(lettuceConnectionFactory);
//
RedisSerializer<?> stringSerializer = new StringRedisSerializer();
// keyåºåå
redisTemplate.setKeySerializer(stringSerializer);
// valueåºåå
redisTemplate.setValueSerializer(fastJsonRedisSerializer);
// Hash keyåºåå
redisTemplate.setHashKeySerializer(stringSerializer);
// Hash valueåºåå
redisTemplate.setHashValueSerializer(fastJsonRedisSerializer);
redisTemplate.afterPropertiesSet();
return redisTemplate;
}
}
ååºååæ¶é误ï¼å°ç½ï¼ç¾åº¦ãè°·æé½æªè§£å³
https://github.com/alibaba/fastjson2/releases/tag/2.0.19 请用新版本验证,如果问题仍然存在,请在这里( https://github.com/alibaba/fastjson2/issues )提issue
https://github.com/alibaba/fastjson2/releases/tag/2.0.19 请用新版本验证,如果问题仍然存在,请在这里( https://github.com/alibaba/fastjson2/issues )提issue
FastJsonRedisSerializer
@wenshao 认真的么,这个里面都没有这个 FastJsonRedisSerializer 类:
<dependency>
<groupId>com.alibaba.fastjson2</groupId>
<artifactId>fastjson2</artifactId>
<version>2.0.19</version>
</dependency>
@caishenao 改用 GenericFastJsonRedisSerializer 应该就没问题了。
同样的问题