Gson数据类型转换异常 java.lang.ClassCastException: com.google.gson.internal.出现原因已经解决方案,
今天写项目发现了一个用gson做JSON串回List的数据对象时,报了这个错误,如下
List<User> userList;
userList=gson.fromJson((jsonStr),List.class);
System.out.println(userList.get(0));
System.out.println(userList.get(0).getUserName());
数据类型转化异常
但是userList.get(0)确实可以正常拿到相应的数据,但是第4行的,getUserName()却会报如上的异常。
经过了一番探索之后,发现是因为Gson在处理Json字符串和对象二者转换时,对于有泛型的数据类型,需要做一个泛型指定,如 List 等
//先来看一个错误的写法, 0 0 随便试的 我敢说肯定很多人也试过
//userList=gson.fromJson(jsonStr,List<User>.class);
//正确操作
userList=gson.fromJson(jsonStr,new TypeToken<List<User>>(){}.getType());