net.sf.ezmorph.bean.MorphDynaBean cannotbe cast to xxx

今天正好遇到这个错误,感谢网站的一位前辈指教,写了个精简版的分享给大家。
 
public class ProductPoiModel {
    //大数据需要字段
    private String code;
    private String message;
    private Result result;
 
get/set方法
}
 
 
 
public class Result { //基本信息 private BaseInfo baseInfo; //企业业务信息 private List<Product> products; //欠税公告信息 private List<Owntax> owntaxes; //税务评级信息 private List<Taxcredit> taxcredits;
 
get/set方法


}

将str解析成json的时候
 
String str = "{\"code\":\"2000\",\"message\":\"成功\",\"result\":{\"baseInfo\":{\"approvedTime\":1504713600000,\"busines。。。。。
 
 
使用如下方法时候:
JSONObject json = JSONObject.fromObject(str);
ProductPoiModel poiModel = (ProductPoiModel)JSONObject.toBean(json, ProductPoiModel.class);
就会报错net.sf.ezmorph.bean.MorphDynaBean cannotbe cast to ProductPoiModel 
 
 
解决办法:
 
Map<String,Object> hashMap = new HashMap<>(); hashMap.put("taxcredits",Taxcredit.class); hashMap.put("products",Product.class); hashMap.put("owntaxes",Owntax.class); JSONObject json = JSONObject.fromObject(str); ProductPoiModel poiModel = (ProductPoiModel)JSONObject.toBean(json, ProductPoiModel.class,hashMap);

加上类型.class 转换的时候就可以放值到对应的list里面了。不然它找不到。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值