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