|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: REQUIRED | OPTIONAL | DETAIL: ELEMENT |
@Target(value={ANNOTATION_TYPE,METHOD}) @Retention(value=RUNTIME) public @interface JsonValue
Marker annotation similar to
bind.annotation.XmlValue
that indicates that results of the annotated "getter" method
(which means signature must be that of getters; non-void return
type, no args) is to be used as the single value to serialize
for the instance. Usually value will be of a simple scalar type
(String or Number), but it can be any serializable type (Collection,
Map or Bean).
At most one method of a Class
can be annotated with this annotation;
if more than one is found, an exception may be thrown.
Also, if method signature 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 sub-classes 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.
Optional Element Summary | |
---|---|
boolean |
value
Optional argument that defines whether this annotation is active or not. |
public abstract boolean value
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: REQUIRED | OPTIONAL | DETAIL: ELEMENT |