问题描述:
类型转换异常:java.lang.ClassCastException: java.util.LinkedHashMap cannot be cast to com.xxx
后端接收数据代码:
@Override
public void run(Map<String, Object> requestMap){
List<XXX> list = (List<XXX>) json.get("list")
...
list.get(0).getId() 报错了。。转换异常
}
打断点调试,发现取到的list是LinkedHashMap。
解决方案:
反序列化成对象
import org.codehaus.jackson.map.ObjectMapper;
import org.codehaus.jackson.type.TypeReference;
List<XXX> list1 = (List<XXX>) requestMap.get("list");
ObjectMapper mapper = new ObjectMapper();
List<XXX> list = mapper.convertValue(list1, new TypeReference<List<XXX>>() { });