您的位置:首页 > Web前端 > JavaScript

google 的 gson json字符串转map 或 list

2015-09-11 16:37 716 查看
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;

    }
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息