json復雜格式反序列化異常處理
反序列化異常
復雜對象序列化為json字符串之后,反序列化的時候異常,明明類型是對的,但是就是轉換失敗。比如:
fastjson的時候提示:
fastjson.JSONException: syntax error, expect {, actual string
jackson提示
MismatchedInputException: Cannot construct instance of `java.util.LinkedHash
解決方法
使用TypeReference
(jackson和fastjson都有這個對象,包結構不同)
.> 在TypeReference的<>
中放轉換的類型
Map<String, List<User>> mao=JSON.parseObject(staticRedisDao.getStr(CACHE_SYS_PARAM_MAP), new TypeReference<Map<String, List<User>>>() {}) ;
或者
Map<String, List<User>> mao=objectMapper.readValue(staticRedisDao.getStr(CACHE_SYS_PARAM_MAP), new TypeReference<Map<String, List<User>>>() {}) ;