json字符串转换成对象的问题
本帖最后由 fqq_zhang 于 2013-06-25 11:50:03 编辑
public class JSONUtil<T>{
private String jsonstring;
public JSONUtil(String jsonstring){
this.jsonstring=jsonstring;
}
public LinkedList<T> parseJsonToTs(){
Type type=new TypeToken<LinkedList<T>>() {}.getType();
Gson gson=new Gson();
LinkedList<T> list=gson.fromJson(jsonstring, type);
return list;
}
}
调用时
JSONUtil<PersonBean> jsonUtil=new JSONUtil<PersonBean>(json);
List<PersonBean> retList1 = jsonUtil.parseJsonToTs();
在第二句提示:
com.google.gson.Json
ParseException: The JsonDeserializer com.google.gson.DefaultTypeAdapters$CollectionTypeAdapter@41019c08 failed to deserialized json object [{"id":"01","name":"张三"},{"id":"02","name":"李四"}] given the type java.util.LinkedList<T>
请问?
------解决方案--------------------马上有效果的做法,但是你的泛型就没什么意义了,可能是底层的原因。
public List<T> parseJsonToTs(){
// Type type=new TypeToken<LinkedList<T>>() {}.getType();
Gson gson=new Gson();
List<T> list=gson.fromJson(jsonstring, new TypeToken<List<Person>>(){}.getType()); //
return list;
}
//new TypeToken<List<Person>>(){}.getType()中的T改成Person.
否则也会报类型转换异常,我的是Object不能被转化为Person