Annotation Type JsonXML
-
@Documented @Retention(RUNTIME) @Target({METHOD,TYPE,PARAMETER}) public @interface JsonXML
The
JsonXML
annotation is used to configure the JSON serialization and deserialization process. It may be placed on a- a model type (e.g. a JAXB-annotated class) to configure serialization and deserialization of that type,
- a JAX-RS resource method to configure serialization of the result type,
- a parameter of a JAX-RS resource method to configure deserialiation of the parameter type.
If an annotations is present at a model type and a resource method or parameter, the latter overrides the model type annotation.
-
-
Optional Element Summary
Optional Elements Modifier and Type Optional Element Description boolean
autoArray
Trigger arrays automatically?boolean
autoPrimitive
Convert element text to number/boolean/null primitives automatically?String[]
multiplePaths
Specify array paths.boolean
namespaceDeclarations
Whether to write namespace declarations.char
namespaceSeparator
Namespace prefix separator.boolean
prettyPrint
Format output for better readability?boolean
virtualRoot
JSON documents may have have multiple root properties.
-
-
-
Element Detail
-
virtualRoot
boolean virtualRoot
JSON documents may have have multiple root properties. However, XML requires a single root element. This property states whether to treat the root as a "virtual" element, which will be removed from the stream when writing and added to the stream when reading. The root element name will be determined from an
@XmlRootElement
or@XmlType
annotation.The default value is
false
(i.e. no virtual root).- Default:
- false
-
-
-
multiplePaths
String[] multiplePaths
Specify array paths. Paths may be absolute or relative (without leading
'/'
), where names are separated by'/'
and may be prefixed. The root element is included in a multiple path if and only ifvirtualRoot
is set tofalse
(i.e. the root does appear in the JSON representation).E.g. for
{ "alice" : { "bob" : [ "edgar", "charlie" ], "peter" : null } }
with
virtualRoot == false
we would specify"/alice/bob"
,"alice/bob"
or"bob"
as multiple path.On the other hand, when setting
virtualRoot == true
, our JSON representation will change to{ "bob" : [ "edgar", "charlie" ], "peter" : null }
and we would specify"/bob"
or"bob"
as multiple path.- Default:
- {}
-
-