@Target(value={ANNOTATION_TYPE,FIELD,METHOD,PARAMETER})
@Retention(value=RUNTIME)
public @interface JsonUnwrapped
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
BeanSerializer
, not a custom serializer
Modifier and Type | Optional Element and Description |
---|---|
boolean |
enabled
Property that is usually only used when overriding (masking) annotations,
using mix-in annotations.
|
java.lang.String |
prefix
Optional property that can be used to add prefix String to use in front
of names of properties that are unwrapped: this can be done for example to prevent
name collisions.
|
java.lang.String |
suffix
Optional property that can be used to add suffix String to append at the end
of names of properties that are unwrapped: this can be done for example to prevent
name collisions.
|
public abstract boolean enabled
"Copyright © 2010 - 2020 Adobe Systems Incorporated. All Rights Reserved"