Javao中使用Jackson反序列時,將LinkedHashMap轉成對象的方法(將任何Object類型轉成實體)


可能存在這樣一種情況,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

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

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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM