这个问题实在是不知道怎么取标题异常如下:Exceptioninthread"main"java.lang.ClassCastException:com.google.gson.internal.LinkedTreeMapcannotbecasttoXXX我举例说明:已知有一个User类,包含了一些简单的属性publicclassUser{privateStringuserName;privateStringgender;//getset方法省略}然后我有一个专门用于数据传输的json包装类publicclassJsonMessage{ privateIntegercode;privateStringmsg;privateTdata;//getset方法省略}然后我有一个主方法publicstaticvoidmain(String[]args){//有一个待序列化的json字符串StringjsonStr="{'code':123,'msg':'test','data':{'userName':'baofeidyz','gender':'male'}}";//然后使用Gson序列化Gsongson=newGson();JsonMessagemessage=gson.fromJson(jsonStr,JsonMessage.class); //然后在这里我尝试获取data中的数据,就报//Exceptioninthread"main"java.lang.ClassCastException:com.google.gson.internal.LinkedTreeMapcannotbecasttoUser}可是当我不使用泛型的时候就是OK的:我这里有一个新的json包装类publicclassJsonMessage2{privateIntegercode;privateStringmsg;privateUserdata;//getset方法省略}然后我又新建了一个新的main方法:publicstaticvoidmain(String[]args){//还是那个待序列化的json字符串StringjsonStr="{'code':123,'msg':'test','data':{'userName':'baofeidyz','gender':'male'}}";//然后使用Gson序列化Gsongson=newGson();//这里换成了新的包装类JsonMessage2message=gson.fromJson(jsonStr,JsonMessage2.class);//然后就成功获取到了数据}代码是我在segmentfault网页现敲的,但是问题是和我实际问题一样。个人觉得主要是我对泛型和Gson的序列化方式理解有问题,所以想请教一下各位,感谢!
翻过高山走不出你
梦里花落0921
相关分类