最近在做redis緩存時,需要將一個Map<String,Object>的對象轉換為String對象存入redis,用的時候需從redis中取出來后並轉為Map<String,Objcet>對象。
之前的做法直接就是Map對象的toString()存入redis,后面取出是就是用再轉換為Map.
String轉換為:JSONObject jsonobject = JSONObject.fromObject(str);
rMap = (Map<String, Object>) jsonobject;
今天之前一切運行正常,本地還有服務器都測試過沒問題,但是今天卻報錯了:
仔細排除原因發現不能直接將Map對象的toString()存入redis,而是應該轉換為JsonObject后再調用toString()后存入redis,就正常了,多么不可思議又理所當然!
附:
Map<String,Object> map=new HashMap<String,Object>();
map.put("fff","fff");
System.out.println(map.toString());
JSONObject jsonObject=JSONObject.fromObject(map);
System.out.println(jsonObject.toString());
輸出的結果如下: