背景
今天在往Redis存储hash结构数据的过程中,在将数据取出来时报错。代码如下
cartOps.put(skuId.toString(), s); //往redis中存储数据(JSON序列化)
String o = (String) cartOps.get(skuId.toString()); // 取出redis中的数据,Json格式
CartItem item = JSON.parse(o); // 报错,JSON转化为对象报错。
解决
fastJson的解析有多个方法,原来是方法调用错误了,查看源码发现redis中存储的JSON数据,要反序列化应该调用parseObject(parseObject(String text, TypeReference<T> type) 这个方法。
如下:
CartItem item = JSON.parseObject(o, new TypeReference<CartItem>() {
报错解决,成功运行。