今天在调用JSONObject.toBean(jsonObject, beanClass),时间戳1489939200000转Date时报实际类型是Long而类期望的值是 Date,加入以下代码既可以解决此问题
首先重写一个时间戳转换类
public class TimestampToDateMorpher extends AbstractObjectMorpher{
public Object morph(Object value) {
if( value != null){
return new Date(Long.parseLong(String.valueOf(value)));
}
return null;
}
@Override
public Class morphsTo() {
return Date.class;
}
public boolean supports( Class clazz ){
return Long.class.isAssignableFrom( clazz );
}
}
再在要调用JSONObject.toBean(jsonObject, beanClass)之前加入这段代码即可
JSONUtils.getMorpherRegistry().registerMorpher(new TimestampToDateMorpher());
JSONObject.toBean(jsonObject, beanClass)