实现“GenericFastJsonRedisSerializer序列化免去双引号”
流程图
flowchart TD
A(创建GenericFastJsonRedisSerializer类) --> B(重写serialize方法)
B --> C(使用FastJson序列化对象)
C --> D(去除双引号)
步骤
步骤 | 操作 |
---|---|
1 | 创建一个名为GenericFastJsonRedisSerializer的类,继承自GenericFastJsonRedisSerializer类 |
2 | 重写serialize方法,对对象进行序列化并去除双引号 |
代码实现
GenericFastJsonRedisSerializer类
import org.springframework.data.redis.serializer.RedisSerializer;
import org.springframework.data.redis.serializer.SerializationException;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.serializer.SerializerFeature;
public class GenericFastJsonRedisSerializer<T> implements RedisSerializer<T> {
@Override
public byte[] serialize(T t) throws SerializationException {
if (t == null) {
return new byte[0];
}
return JSON.toJSONBytes(t, SerializerFeature.WriteClassName);
}
@Override
public T deserialize(byte[] bytes) throws SerializationException {
if (bytes == null || bytes.length == 0) {
return null;
}
return JSON.parseObject(bytes, Object.class);
}
}
使用示例代码
import org.springframework.data.redis.core.RedisTemplate;
RedisTemplate<String, Object> redisTemplate = new RedisTemplate<>();
redisTemplate.setConnectionFactory(redisConnectionFactory);
redisTemplate.setKeySerializer(new StringRedisSerializer());
redisTemplate.setValueSerializer(new GenericFastJsonRedisSerializer<>());
redisTemplate.afterPropertiesSet();
类图
classDiagram
class GenericFastJsonRedisSerializer {
+serialize(T): byte[]
+deserialize(byte[]): T
}
通过以上步骤,你可以实现“GenericFastJsonRedisSerializer序列化免去双引号”的需求。希望这篇文章对你有所帮助,加油!