可能存在这样一种情况,Jackson已经满足了大部分的序列化和反序列化工作,但是对于复杂的泛型实体估计未必能如愿的正常反序列,而此时对于一些泛型里面的实体对象就会反序列化成LinkedHashMap类型的。
同样,这个类型不能直接强制转换成想要的实体,此时要解决此类问题的思路如下:
1、继续将这个LinkedHashMap进行序列化程JSON,然后再反序列化,但是这样效率就低了。
2、直接使用自带的convertValue方法将这个LinkedHashMap以Object类型转成想要的实体。
样例:
import com.fasterxml.jackson.databind.ObjectMapper;
ObjectMapper mapper = new ObjectMapper();
List<Filter> filterList = mapper.convertValue(listOfObjects, new TypeReference<List<POJO>>() { });
虽然效率还是低了,但是比第一种方式少了一步,效率减少了一点。
本文探讨了在使用Jackson处理复杂泛型实体时遇到的问题,即某些对象可能被反序列化为LinkedHashMap类型。文中提供了两种解决方案:一是通过二次序列化和反序列化的方式;二是直接使用convertValue方法进行转换。
&spm=1001.2101.3001.5002&articleId=81324144&d=1&t=3&u=f0d455b0be7544a1bf96cf9bca9dba7b)
9020

被折叠的 条评论
为什么被折叠?



