google 的 gson json字符串转map 或 list

google 的 gson json字符串转map 或 list


这个两天维护项目,要不json字符串转为list 或者 map ,用 gson 解决,总是出现转换异常的问题,这个是泛型的问题

例如:json字符串转list

public static List<?> jsonToList(String jsonStr){
        List<?> objList=null;
        if(gson!=null){
            java.lang.reflect.Type type=new com.google.gson.reflect.TypeToken<List<?>>(){}.getType();
            objList=gson.fromJson(jsonStr, type);
        }
        return objList;
    }

直接用这个方法会报错!

解决:

public static List<ResultSend> jsonToListByRS(String jsonStr){
        List<ResultSend> objList = null;
        if(gson!=null){
            java.lang.reflect.Type type=new com.google.gson.reflect.TypeToken<List<ResultSend>>(){}.getType();
            objList=gson.fromJson(jsonStr, type);
        }
        return objList;
    }

把?换成具体的类就可以了,也不知道为啥,如果?不可以,之前的程序员为什么这么写呢??最后还是像我那样解决的


map也是如此

public static Map<?,?> jsonToMap(String jsonStr){
        Map<?,?> objMap=null;
        if(gson!=null){
            java.lang.reflect.Type type=new com.google.gson.reflect.TypeToken<Map<?,?>>(){}.getType();
            objMap=gson.fromJson(jsonStr, type);
        }
        return objMap;
    }

解决:

public static Map<String,ResultSend> jsonToMap2(String jsonStr){
         Map<String,ResultSend> objMap=null;
         if(gson!=null){
             java.lang.reflect.Type type=new com.google.gson.reflect.TypeToken<Map<String,ResultSend>>(){}.getType();
             objMap=gson.fromJson(jsonStr, type);
         }
         return objMap;
    }


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值