天天看點

java.lang.ClassCastException: com.google.gson.internal.LinkedTreeMap cannot be cast to xxxxxx

java.lang.ClassCastException: com.google.gson.internal.LinkedTreeMap cannot be cast to xxxxxx

原因在于轉換普通String字元串到List清單對象時候,解決方法可以用下面的轉換方法:

/**
     * 把一個json的字元串轉換成為一個包含POJO對象的List
     *
     * @param string
     * @param cls
     * @param <T>
     * @return
     */
    public static <T> List<T> jsonStringConvertToList(String string, Class<T[]> cls) {
        Gson gson = new Gson();
        T[] array = gson.fromJson(string, cls);
        return Arrays.asList(array);
    }           

比如自己的一個Java對象MyPOJO.class,那麼該方法為:

jsonStringConvertToList(string,MyPOJO[].class);