今天正好遇到这个错误,感谢网站的一位前辈指教,写了个精简版的分享给大家。
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里面了。不然它找不到。