Gson对象转成Java复杂对象出错

程序中有一个复杂的对象数据要保存起来,我们把这个对象用GSON转成字符串,然后直接存进数据库的一个CLOB字段作为持久化。下次使用的时候,直接取出,然后借助GSON转成Java对象,对于简单的Java对象,GSON的互转都是没有问题的。但是我的这个结构嵌套层级有点多,Java数据类型是:

Map>>

在使用

new Gson().fromJson(advData.getDataString(), Map.class);

转成Java对象的时候就报了:

java.lang.ClassCastException: com.google.gson.internal.LinkedTreeMap cannot be cast to java.util.HashMap

Google了一阵子,网友给出的方案是:

Map>> advDataMap = new Gson().fromJson(advData.getDataString(), new TypeToken>>>() {}.getType());



你可能感兴趣的:(Gson对象转成Java复杂对象出错)