@Target({METHOD,FIELD,TYPE,PARAMETER})
@Retention(RUNTIME)
public @interface JsonDeserialize
An example annotation would be:
@JsonDeserialize(using=MySerializer.class, as=MyHashMap.class, keyAs=MyHashKey.class, contentAs=MyHashValue.class )
NOTE: since version 1.2, annotation has also been applicable to (constructor) parameters
Modifier and Type | Optional Element | Description |
---|---|---|
java.lang.Class<?> |
as |
Concrete type to deserialize values as, instead of type otherwise
declared.
|
java.lang.Class<?> |
contentAs |
Concrete type to deserialize content (elements
of a Collection/array, values of Maps) values as,
instead of type otherwise declared.
|
java.lang.Class<? extends JsonDeserializer<?>> |
contentUsing |
Deserializer class to use for deserializing contents (elements
of a Collection/array, values of Maps) of annotated property.
|
java.lang.Class<?> |
keyAs |
Concrete type to deserialize keys of
Map as,
instead of type otherwise declared. |
java.lang.Class<? extends KeyDeserializer> |
keyUsing |
Deserializer class to use for deserializing Map keys
of annotated property.
|
java.lang.Class<? extends JsonDeserializer<?>> |
using |
Deserializer class to use for deserializing associated value.
|
java.lang.Class<? extends JsonDeserializer<?>> using
java.lang.Class<? extends JsonDeserializer<?>> contentUsing
java.lang.Class<? extends KeyDeserializer> keyUsing
java.lang.Class<?> as
Bogus type NoClass
can be used to indicate that declared
type is used as is (i.e. this annotation property has no setting);
this since annotation properties are not allowed to have null value.
Note: if using()
is also used it has precedence
(since it directly specified
deserializer, whereas this would only be used to locate the
deserializer)
and value of this annotation property is ignored.
java.lang.Class<?> keyAs
Map
as,
instead of type otherwise declared.
Must be a subtype of declared type; otherwise an exception may be
thrown by deserializer.java.lang.Class<?> contentAs