You can implement your own org.codehaus.jackson.map.DeserializerProvider , which extends Jackson org.codehaus.jackson.map.deser.StdDeserializerProvider and _createDeserializer method:
import org.codehaus.jackson.map.SerializerProvider; import org.codehaus.jackson.map.deser.StdDeserializerProvider; import org.codehaus.jackson.map.DeserializationConfig; ... class MyDeserializerProvider extends StdDeserializerProvider { @Override protected JsonDeserializer<Object> _createDeserializer(DeserializationConfig config, JavaType type, BeanProperty property) throws JsonMappingException { if (type.isMapLikeType()) {
(1) use an if condition appropriate to your needs
The custom deserializer is registered directly with ObjectMapper:
ObjectMapper om = new ObjectMapper(); om.setDeserializerProvider(new MyDeserializerProvider());
I tested this with Jackson 1.9.11.
source share