Javao中使用Jackson反序列时,将LinkedHashMap转成对象的方法(将任何Object类型转成实体)

可能存在这样一种状况,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

https://stackoverflow.com/questions/31669517/jackson-unmarshall-custom-object-instead-of-linkedhashmapio

https://stackoverflow.com/questions/41305787/jackson-json-object-mapper-deserializes-to-linkedhashmap-instead-of-hashmapast

相关文章
相关标签/搜索