TypeToken:专门用来解析Hash<Integer,List<String>> 不能作class使用
Type type=New HashMapType().getType();
New Gson().fromJson(json,type);
Class HashMapType extends TypeToken<Hash<Integer,List<String>>>{};
示例
@NonNull
private HashMap<Integer, List<String>> getGroupData() {
//创建分组
List<String> list1 = new ArrayList<>();
for (int i = 0; i <11; i++) {
list1.add("牛肉面" + i);
}
List<String> list2 = new ArrayList<>();
for (int i = 0; i < 11; i++) {
list2.add("鸡蛋面" + i);
}
List<String> list3 = new ArrayList<>();
for (int i = 0; i < 11; i++) {
list3.add("麻辣烫" + i);
}
//分组数据
final HashMap<Integer, List<String>> groups = new HashMap<>();
groups.put(0, list1);
groups.put(1, list2);
groups.put(2, list3);
String json= new Gson().toJson(groups);
System.out.println(json);
//HashMap<Integer, List<String>>
//TypeToken就是用来处理json为集合的解析
Type type=new HashMapType().getType();
HashMap<Integer, List<String>> map= new Gson().fromJson(json,type);
return groups;
}
private class HashMapType extends TypeToken<HashMap<Integer, List<String>>> {}
}