实现“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序列化免去双引号”的需求。希望这篇文章对你有所帮助,加油!