1. 程式人生 > >Jackson反序列時,將LinkedHashMap轉成物件(Object型別轉成實體)

Jackson反序列時,將LinkedHashMap轉成物件(Object型別轉成實體)

可能存在這樣一種情況,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>>() { });

雖然效率還是低了,但是比第一種方式少了一步,效率減少了一點。