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的使用,在關於字符串轉換的時候,經常可能會遇到字符串不能轉成實體,或者字符串有很多轉義字符的情況!!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM