0
点赞
收藏
分享

微信扫一扫

Android 项目总结(TypeToken泛型的解析)

秦瑟读书 2022-01-09 阅读 40

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>>> {}
}

举报

相关推荐

0 条评论