可能存在這樣一種情況,Jackson已經滿足了大部分的序列化和反序列化工作,但是對於復雜的泛型實體估計未必能如願的正常反序列,而此時對於一些泛型里面的實體對象就會反序列化成LinkedHashMap類型的。
同樣,這個類型不能直接強制轉換成想要的實體,此時要解決此類問題的思路如下:
1、繼續將這個LinkedHashMap進行序列化程JSON,然后再反序列化,但是這樣效率就低了。
2、直接使用自帶的convertValue方法將這個LinkedHashMap以Object類型轉成想要的實體。
樣例:
POJO pojo = mapper.convertValue(singleObject, POJO.class); // or: List<POJO> pojos = mapper.convertValue(listOfObjects, new TypeReference<List<POJO>>() { });
雖然效率還是低了,但是比第一種方式少了一步,效率減少了一點。
參考:
https://stackoverflow.com/questions/15430715/casting-linkedhashmap-to-complex-object
