@Target(value={ANNOTATION_TYPE,METHOD,FIELD,TYPE,PARAMETER}) @Retention(value=RUNTIME) public @interface JsonDeserializeAs
Classes) or on properties (property accessors
like "getters", "setters" and constructor parameters).
Overrides can apply to:
value itself (for all types and properties)
content of structured types (array and Collection
elements; Map values)
keys of Maps
To indicate that no override is to be used, Void.class is used
as the marker (will use declared type) -- this is necessary as Annotation
properties cannot have null values.
Example usage:
public class POJO {
@JsonDeserializeAs(ValueImpl.class)
public Value value;
@JsonDeserializeAs(keys = KeyEnum.class, content = ValueImpl.class)
public Map<Object, Object> props;
}
| Modifier and Type | Optional Element and Description |
|---|---|
Class<?> |
content
Type to deserialize content entries (array and
Collection
elements, Map values) as, instead of type declared. |
Class<?> |
keys
Type to deserialize
Map keys as, instead of type declared. |
Class<?> |
value
Type to deserialize values as, instead of type declared.
|
public abstract Class<?> value
Bogus type Void is used to indicate that declared
type is used as-is (i.e. this annotation property has no setting).
public abstract Class<?> content
Collection
elements, Map values) as, instead of type declared.
Must be a sub-type of declared type; otherwise an
exception may be thrown by deserializer.
Bogus type Void is used to indicate that declared
type is used as-is (i.e. this annotation property has no setting).
public abstract Class<?> keys
Map keys as, instead of type declared.
Must be a sub-type of declared type; otherwise an
exception may be thrown by deserializer.
Bogus type Void is used to indicate that declared
type is used as-is (i.e. this annotation property has no setting).
Copyright © 2008–2026 FasterXML. All rights reserved.