解决 Jackson反序列化 Unexpected token ... , expected VALUE_STRING: need JSON String that contains type id

首先看到这类提示错误,我们应该知道这个肯定是锁获取的数据不符合JSON格式

例如在Redis中我们存储的如下集合

[
            {
                "inviterId": 1747,
                "userName": "x1**11@qq.com",
                "currencyId": null,
                "symbol": null,
                "feeAmount": 132973232.86878297748704000000,
                "commissionFee": "132973232.868"
            },
            {
                "inviterId": 447,
                "userName": "1*0@qq.com",
                "currencyId": null,
                "symbol": null,
                "feeAmount": 113770242.85038540344352000000,
                "commissionFee": "113770242.85"
            }
        ]

一看便知道不符合Json的格式规范(键值),一般情况下你默认使用RedisTemplate<Object, Object>中字符串的的get方法去获取额时候,因为不符合格式,反序列化会失败。哪我们如何解决啦。添加如下的代码既可以解决问题

  @Bean
	public StringRedisTemplate stringRedisTemplate(RedisConnectionFactory factory) {
		StringRedisTemplate stringRedisTemplate = new StringRedisTemplate();
		stringRedisTemplate.setConnectionFactory( factory );
		return stringRedisTemplate;
	}

我们去解析的时候注入

@Resource(name = "stringRedisTemplate")
    private RedisTemplate<String, String> stringRedisTemplate;

然后使用该对象去获取值,即可正常解决该问题。

this.stringRedisTemplate.opsForValue().get("COMMON:KEY").toString();

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值