下面列出了怎么用com.fasterxml.jackson.databind.deser.BeanDeserializer的API类实例代码及写法,或者点击链接到github查看源代码。
/**
* Gets a module wrapping this serializer as an adapter for the Jackson
* ObjectMapper.
*
* @param mapper the object mapper for default deserializations
* @return a simple module to be plugged onto Jackson ObjectMapper.
*/
public static SimpleModule getModule(final ObjectMapper mapper) {
SimpleModule module = new SimpleModule();
module.setDeserializerModifier(new BeanDeserializerModifier() {
@Override
public JsonDeserializer<?> modifyDeserializer(DeserializationConfig config, BeanDescription beanDesc, JsonDeserializer<?> deserializer) {
if (BeanDeserializer.class.isAssignableFrom(deserializer.getClass())) {
// Apply flattening deserializer on all POJO types.
return new FlatteningDeserializer(beanDesc.getBeanClass(), deserializer, mapper);
} else {
return deserializer;
}
}
});
return module;
}
/**
* Gets a module wrapping this serializer as an adapter for the Jackson
* ObjectMapper.
*
* @param mapper the object mapper for default deserializations
* @return a simple module to be plugged onto Jackson ObjectMapper.
*/
public static SimpleModule getModule(final ObjectMapper mapper) {
SimpleModule module = new SimpleModule();
module.setDeserializerModifier(new BeanDeserializerModifier() {
@Override
public JsonDeserializer<?> modifyDeserializer(DeserializationConfig config, BeanDescription beanDesc, JsonDeserializer<?> deserializer) {
if (BeanDeserializer.class.isAssignableFrom(deserializer.getClass())) {
// Apply flattening deserializer on all POJO types.
return new FlatteningDeserializer(beanDesc.getBeanClass(), deserializer, mapper);
} else {
return deserializer;
}
}
});
return module;
}
public EntityDeserializer(
Class<? extends AbstractEntity> entityClass,
BeanDeserializer defaultDeserializer,
Dao generalDao) {
super(defaultDeserializer);
this.entityClass = entityClass;
this.defaultDeserializer = defaultDeserializer;
this.generalDao = generalDao;
}
@Override
public JsonDeserializer<?> modifyDeserializer(DeserializationConfig config,
BeanDescription beanDesc, JsonDeserializer<?> deserializer)
{
if (MyType.class.isAssignableFrom(beanDesc.getBeanClass())) {
count++;
return new MyBeanDeserializer((BeanDeserializer)deserializer);
}
return super.modifyDeserializer(config, beanDesc, deserializer);
}
@Override
public JsonDeserializer<?> modifyDeserializer(DeserializationConfig config,
BeanDescription beanDesc,
JsonDeserializer<?> deserializer) {
if (deserializer instanceof BeanDeserializer) {
BeanDeserializer beanDeserializer = (BeanDeserializer) deserializer;
return new EntityBeanDeserializer(beanDeserializer, deserializer.getObjectIdReader());
}
return super.modifyDeserializer(config, beanDesc, deserializer);
}
public ThrowableDeserializer(BeanDeserializer baseDeserializer) {
super(baseDeserializer);
// need to disable this, since we do post-processing
_vanillaProcessing = false;
}
/**
* Alternative constructor used when creating "unwrapping" deserializers
*/
protected ThrowableDeserializer(BeanDeserializer src, NameTransformer unwrapper) {
super(src, unwrapper);
}
public MyBeanDeserializer(BeanDeserializer src) {
super(src);
}