case START_OBJECT:
{
bean = def.create();
for (; (t = _parser.nextToken()) == JsonToken.FIELD_NAME; ) {
String fieldName = _parser.getCurrentName();
BeanProperty prop = def.findProperty(fieldName);
if (prop == null) {
if (JSON.Feature.FAIL_ON_UNKNOWN_BEAN_PROPERTY.isEnabled(_features)) {
throw JSONObjectException.from(_parser, "Unrecognized JSON property '"
+fieldName+"' for Bean type "+type.getName());
}
_parser.nextToken();
_parser.skipChildren();
continue;
}
_parser.nextToken();
Class<?> rawType = prop.getType();
int propType = prop.getTypeId();
// need to dynamically resolve bean type refs
if (propType == TypeDetector.SER_UNKNOWN) {
propType = _typeDetector.findFullType(rawType);
if (propType != TypeDetector.SER_UNKNOWN) {
prop.overridTypeId(propType);
}
}
Object value = _readBean(rawType, propType);
prop.setValueFor(bean, value);
}
}
break;
default:
}