java中使用json-lib将json转换为bean

1.在属性是List时,需要注册一下类型,否则会报错

net.sf.ezmorph.bean.MorphDynaBean cannot be cast to com.***.***

解决方法:

自定义一个Map,List类型属性的名称和对应的类添加到该Map后,在将json转换为bean时将该map作为参数传入即可

Map <String,Class> typeMap = new HashMap<String,Class>(); typeMap.put("list", YouClass.class);
YouClass youClass =( YouClass)JSONObject.toBean(json, YouClass.class, typeMap);

 

2.如果json中的属性是以数字开头的属性,因为java规定属性名不能以数字开头,则需要通过在该属性的setter方法上做改动,如json中有一个名为“3h”的属性,则可以通过将自定义属性的setter方法进行自定义来实现。具体代码:

publicvoid set3h(int rainIn3h)
{
    this.rainIn3h = rainIn3h;
 
}

 

你可能感兴趣的:(json-lib)