zoukankan      html  css  js  c++  java
  • 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的使用,在关于字符串转换的时候,经常可能会遇到字符串不能转成实体,或者字符串有很多转义字符的情况!!

  • 相关阅读:
    pat乙级1018
    下拉框多选,出现这种情况,求大神帮我看看
    Filter 过滤器
    拦截器和过滤器区别
    Servlet 生命周期
    cannot simultaneously fetch multiple bags 问题的解决办法
    JPA规范及其它持久层框架
    数据库设计的三大范式
    装饰者模式
    Java 流
  • 原文地址:https://www.cnblogs.com/920913cheng/p/15751928.html
Copyright © 2011-2022 走看看