最近在做redis缓存时,需要将一个Map的对象转换为String对象存入redis,用的时候需从redis中取出来后并转为Map对象。
之前的做法直接就是Map对象的toString()存入redis,后面取出是就是用再转换为Map.
String转换为:JSONObject jsonobject = JSONObject.fromObject(str);
rMap = (Map) jsonobject;
今天之前一切运行正常,本地还有服务器都测试过没问题,但是今天却报错了:
仔细排除原因发现不能直接将Map对象的toString()存入redis,而是应该转换为JsonObject后再调用toString()后存入redis,就正常了,多么不可思议又理所当然!
附:
Map map=new HashMap();
map.put("fff","fff");
System.out.println(map.toString());
JSONObject jsonObject=JSONObject.fromObject(map);
System.out.println(jsonObject.toString());
输出的结果如下: