Annotation Type JsonUnwrapped
Annotation used to indicate that a property should be serialized
"unwrapped"; that is, if it would be serialized as JSON Object, its
properties are instead included as properties of its containing
Object. For example, consider case of POJO like:
public class Parent {
public int age;
public Name name;
}
public class Name {
public String first, last;
}
which would normally be serialized as follows (assuming @JsonUnwrapped
had no effect):
{
"age" : 18,
"name" : {
"first" : "Joey",
"last" : "Sixpack"
}
}
can be changed to this:
{
"age" : 18,
"first" : "Joey",
"last" : "Sixpack"
}
by changing Parent class to:
public class Parent {
public int age;
\@JsonUnwrapped
public Name name;
}
Annotation can only be added to properties, and not classes, as it is contextual.
Also note that annotation only applies if
- Value is serialized as JSON Object
- Serialization is done using
BeanSerializer, not a custom serializer - No type information is added; if type information needs to be added, structure can not be altered regardless of inclusion strategy; so annotation is basically ignored.
- Since:
- 1.9
-
Optional Element Summary
Optional ElementsModifier and TypeOptional ElementDescriptionbooleanProperty that is usually only used when overriding (masking) annotations, using mix-in annotations.
-
Element Details
-
enabled
boolean enabledProperty that is usually only used when overriding (masking) annotations, using mix-in annotations. Otherwise default value of 'true' is fine, and value need not be explicitly included.- Default:
true
-