@Target(value={ANNOTATION_TYPE,METHOD,FIELD}) @Retention(value=RUNTIME) public @interface JsonValue
At most one accessor of a Class
can be annotated with this annotation;
if more than one is found, an exception may be thrown.
Also, if method signature of annotated method is not compatible with Getters,
an exception may be thrown (whether exception is thrown or not is an
implementation detail (due to filtering during introspection, some annotations
may be skipped) and applications should not rely on specific behavior).
A typical usage is that of annotating toString()
method so that returned String value is used as the JSON serialization;
and if deserialization is needed, there is matching constructor
or factory method annotated with JsonCreator
annotation.
Boolean argument is only used so that subclasses can "disable" annotation if necessary.
NOTE: when use for Java enum
s, one additional feature is
that value returned by annotated method is also considered to be the
value to deserialize from, not just JSON String to serialize as.
This is possible since set of Enum values is constant and it is possible
to define mapping, but can not be done in general for POJO types; as such,
this is not used for POJO deserialization.
NOTE: When the instance is being serialized as the key of a Map type,
this will be ignored if an accessor is annotated with
JsonKey
.
JsonCreator
,
JsonKey
Modifier and Type | Optional Element and Description |
---|---|
boolean |
value
Optional argument that defines whether this annotation is active
or not.
|
public abstract boolean value
Copyright © 2008–2023 FasterXML. All rights reserved.