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

来源:互联网 发布:淘宝新店靠谱的推广 编辑:程序博客网 时间:2024/06/06 08:35

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

Map<String, Collection<LinkedHashMap<String, String>>>

在使用

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<String, Collection<LinkedHashMap<String, String>>> advDataMap = new Gson().fromJson(advData.getDataString(), new TypeToken<Map<String, Collection<LinkedHashMap<String, String>>>>() {}.getType());



0 0