Map转JavaBean,目前测试了如下异常:
Map中Value为String类型的JSON字符串,转换List<JSONObject>异常
Map中Value为String类型的字符串,转换枚举异常
Map中Value为Character类型的字符,转换Character异常
暂时通过如下方式实现成功转换:
if (fieldInfo.declaringClass != null
&& ((!fieldClass.isInstance(value))
|| (fieldAnnation != null && fieldAnnation.deserializeUsing() != Void.class))
) {
// DefaultJSONParser parser = new DefaultJSONParser(JSON.toJSONString(value));
if (fieldInfo.isEnum || fieldClass == Character.class) {
value = TypeUtils.cast(value, paramType, config);
fieldDeser.setValue(object, value);
} else {
String input = value instanceof String ? (String) value : JSON.toJSONString(value);
DefaultJSONParser parser = new DefaultJSONParser(input);
fieldDeser.parseField(parser, object, paramType, null);
}
continue;
}
是否可以在 fieldDeser.parseField(parser, object, paramType, null)
异常之后通过 TypeUtils.cast(value, paramType, config)
转换