After some tests, I found that the @ jax answer has a problem.
@Staxman, createContextual() Deserializer, . , createContextual, . , 1 (, ), , targetClass , .
:
public class JsonApiDeserializer extends JsonDeserializer<Object> implements
ContextualDeserializer {
private Class<?> targetClass;
public JsonApiDeserializer() {
}
public JsonApiDeserializer(Class<?> targetClass) {
this.targetClass = targetClass;
}
@Override
public Object deserialize(JsonParser p, DeserializationContext ctxt)
throws IOException, JsonProcessingException {
Object clazz = targetClass.newInstance();
return clazz;
}
@Override
public JsonDeserializer<?> createContextual(DeserializationContext ctxt,
BeanProperty property) throws JsonMappingException {
targetClass = ctxt.getContextualType().getRawClass();
return new JsonApiDeserializer(targetClass);
}
}