可能存在这样一种状况,Jackson已经知足了大部分的序列化和反序列化工做,可是对于复杂的泛型实体估计未必能如愿的正常反序列,而此时对于一些泛型里面的实体对象就会反序列化成LinkedHashMap类型的。
json
一样,这个类型不能直接强制转换成想要的实体,此时要解决此类问题的思路以下:app
一、继续将这个LinkedHashMap进行序列化程JSON,而后再反序列化,可是这样效率就低了。
spa
二、直接使用自带的convertValue方法将这个LinkedHashMap以Object类型转成想要的实体。
code
样例:对象
POJO pojo = mapper.convertValue(singleObject, POJO.class); // or: List<POJO> pojos = mapper.convertValue(listOfObjects, new TypeReference<List<POJO>>() { });
虽然效率仍是低了,可是比第一种方式少了一步,效率减小了一点。blog
参考:get
https://stackoverflow.com/questions/15430715/casting-linkedhashmap-to-complex-objecthash