在使用google的Gson类解析json格式的字符串为java bean的时候遇到了一个问题,The JsonDeserializer com.google.gson.DefaultTypeAdapters$CollectionTypeAdapter@1dd21dd2 failed to deserialize json object,given the type java.util.List<Order>。java bean的数据格式是这样的:public class Trade{
private String adjustFee;
    private Long alipayId;
private List orders; public List getOrders()
    {
        return orders;
    }
    public void setOrders(List orders)
    {
        this.orders = orders;
    } public String getAdjustFee()
    {
        return adjustFee;
    }
    public void setAdjustFee(String adjustFee)
    {
        this.adjustFee = adjustFee;
    }
public Long getAlipayId()
    {
        return alipayId;
    }
    public void setAlipayId(Long alipayId)
    {
        this.alipayId = alipayId;
    }
}
public class Order{
private String adjustFee;
    private String buyerNick;
public String getAdjustFee()
    {
        return adjustFee;
    }
    public void setAdjustFee(String adjustFee)
    {
        this.adjustFee = adjustFee;
    }
    public String getBuyerNick()
    {
        return buyerNick;
    }
    public void setBuyerNick(String buyerNick)
    {
        this.buyerNick = buyerNick;
    }
}
其中Trade类中有个List,里面存放的就是Order,只是没有使用泛型,java bean中的属性没有全部给出,只是跟异常相关的属性(Order),然后调用Gson的方法去将json字符串转化为Trade对象,Trade trade = gson.fromJson(json, Trade.class);然后就抛出了上面提到的异常。也就是这种问题,一个java bean中有Collection类型的属性,怎么利用Gson实现反序列化?求大神指导!gson反序列化

解决方案 »

  1.   

    解决了,项目中序列化的时候用的是taobao的处理json的jar,然后我原先反序列化的时候用的google的Gson工具,所以出现了上面的问题,具体原因也没有去查看,后来看到项目中的json序列化的时候使用的是taobao封装的操作json的工具类,就去查看taobao json工具类的源码,然后用taobao json jar中的工具类反序列化的。