首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2EE开发 >

json字符串转换成对象的有关问题

2013-07-04 
json字符串转换成对象的问题本帖最后由 fqq_zhang 于 2013-06-25 11:50:03 编辑public class JSONUtilT{

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.JsonParseException: 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

热点排行