使用Jackson2JsonRedisSerializer序列化LocalDateTime类型数据到Redis取出报错问题

使用Jackson2JsonRedisSerializer序列化LocalDateTime类型数据到Redis取出报错问题

大概错误提示:org.springframework.data.redis.serializer.SerializationException: Could not read JSON: Cannot construct instance of `java.time.LocalDateTime` (no Creators, like default construct, exist): cannot deserialize from Object value (no delegate- or property-based Creator) 

 原因:我在redis.config文件配置序列化时,使用Jackson2JsonRedisSerializer来序列化数据到数据库时存入的数据格式不对,应该是yyyy-MMMM-…格式。

解决方法: 

方法1:手动序列化和反序列化数据

方法2(推荐) :改用阿里的fastJson作为序列化工具 或者使用其他

例如GenericFastJsonRedisSerializer 或FastJsonRedisSerializer

结果:成功解决问题!

参考来源:

 1.GenericJackson2JsonRedisSerializer序列化遇到的坑_慕之城的博客-CSDN博客

 2.https://blog.csdn.net/sinat_38278330/article/details/82150879

 3.Jackson Serializer缓存数据序列化问题.md · 咔呲/SpringBoot-Redis作为二级缓存整合的基本Demo - Gitee.com

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Jackson2JsonRedisSerializer 是一种将 Java 对象序列为 JSON 并存储在 Redis 中的序列器。它使用 Jackson 框架来实现序列和反序列操作。这种序列器通常用于将 Java 对象存储在 Redis 缓存中。 ### 回答2: Jackson2JsonRedisSerializer是Spring Data Redis提供的一种序列工具,用于将Java对象序列为JSON格式并存储到Redis数据库中。它基于Jackson库,可以很方便地进行对象和JSON之间的转换。 Jackson2JsonRedisSerializer的主要作用是解决默认的JdkSerializationRedisSerializer在序列时产生的一系列问题。JdkSerializationRedisSerializer虽然简单易用,但它会将序列后的对象存储为字节数组,不易阅读和调试,并且在不同的Java版本之间存在不兼容的问题。 相比之下,Jackson2JsonRedisSerializer将对象序列为JSON字符串,具有更好的人类可读性和跨版本的兼容性。它可以序列任何可以被Jackson库支持的对象,包括JavaBean、集合、数组等。同时,Jackson2JsonRedisSerializer还支持设置对象的属性进行序列和反序列,增加了灵活性。 在使用Jackson2JsonRedisSerializer时,需要将其配置为RedisTemplate或者RedisOperations对象的value序列器。这样,当通过RedisTemplate操作Redis数据库时,存入和取出的对象就会自动进行JSON序列和反序列。 总的来说,Jackson2JsonRedisSerializer是一种方便可靠的序列工具,可以解决JdkSerializationRedisSerializer的一些不足之处。它简了对象的存储和读取过程,使得在使用Redis作为数据存储时,可以更加灵活、高效地处理Java对象。 ### 回答3: Jackson2JsonRedisSerializer是一个用于将Java对象序列为JSON格式并存储到Redis中的工具类。它是Spring Data Redis库中的一部分,并基于Jackson JSON库实现。 使用Jackson2JsonRedisSerializer时,可以将Java对象转换为JSON字符串,并将其存储在Redis中。反之,我们还可以从Redis中获取JSON字符串并将其转换回Java对象。 Jackson2JsonRedisSerializer提供了一种用于序列和反序列的机制,可以将Java对象和Redis中的数据进行相互转换。它支持的数据类型包括基本数据类型(如字符串、整数、布尔值等)以及复杂的对象类型(如List、Map等)。 使用Jackson2JsonRedisSerializer的好处包括: 1. 简单易用:Jackson2JsonRedisSerializer封装了序列和反序列的逻辑,简了开发人员的工作。我们只需要调用相应的方法即可完成对象与JSON字符串之间的转换。 2. 数据格式标准:Jackson2JsonRedisSerializer采用了标准的JSON格式,数据之间的交互更加方便和可读。 3. 版本兼容性:Jackson2JsonRedisSerializer与不同版本的Jackson JSON库兼容性较好,可以支持各种版本的Jackson库。 4. 扩展性:Jackson2JsonRedisSerializer可以自定义序列和反序列的规则,适应各种复杂对象的存储需求。 总之,Jackson2JsonRedisSerializer是一个功能强大且易于使用的工具类,可以方便地将Java对象序列为JSON字符串并存储在Redis中,同时也可以将JSON字符串从Redis中获取并反序列为Java对象。这使得我们能够更加灵活和高效地处理Redis中的数据

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值