java 将redis的数据批量取出来的时候遇到json格式转换异常

需求:将数据存入redis 存放的数据结构是hash 现在需要把它批量取出

批量取出的方式有很多,这里记录的是取出来以后数据反序列化成java实体时候的异常

 

线上代码不贴,模拟该代码

 

  UserLoginParams userLoginParams = new UserLoginParams();
        userLoginParams.setdeviceid(1+"");
        userLoginParams.setPassword("123456");
        userLoginParams.setPhone(1+"");
       // Mono mono = userService.userLogin(userLoginParams);

        String s = JSON.toJSONString(userLoginParams);

        stringRedistemplate.opsForHash().put("test1","1",s);

        Map<Object, Object> test = stringRedistemplate.opsForHash().entries("test1");

        String o = (String) test.get("1");

        String s1 = JSON.toJSONString(o);

        UserLoginParams userLoginParams1 = JSON.parSEObject(s1, UserLoginParams.class);

 

运行结果 提示异常:

com.alibaba.fastjson.JSONException: Syntax error, expect {, actual string, pos 0, fastjson-version 1.2.51

 

修改代码

  UserLoginParams userLoginParams = new UserLoginParams();
        userLoginParams.setdeviceid(1+"");
        userLoginParams.setPassword("123456");
        userLoginParams.setPhone(1+"");
        Mono mono = userService.userLogin(userLoginParams);

        String s = JSON.toJSONString(userLoginParams);

        stringRedistemplate.opsForHash().put("test1","1",s);

        Map<Object, Object> test = stringRedistemplate.opsForHash().entries("test1");

        String o = (String) test.get("1");


        UserLoginParams userLoginParams1 = JSON.parSEObject(o, UserLoginParams.class);

再次运行断点结果:

 

 

 

 

没什么技术难点,就只是一个API的使用,在关于字符串转换的时候,经常可能会遇到字符串不能转成实体,或者字符串有很多转义字符的情况!!

相关文章

在笔者近 3 年的 Java 一线开发经历中,尤其是一些移动端、用...
这一篇文章拖了有点久,虽然在项目中使用分布式锁的频率比较...
本文梳理总结了一些 Java 互联网项目中常见的 Redis 缓存应用...
书接上回,消息通知系统(notification-system)作为一个独立...
Redis 是目前互联网后端的热门中间件之一,在许多方面都有深...
在Java Spring 项目中,数据与远程数据库的频繁交互对服务器...