@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 | enabledProperty that is usually only used when overriding (masking) annotations,
 using mix-in annotations. | 
| String | prefixOptional 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. | 
| String | suffixOptional 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
public abstract String prefix
public abstract String suffix
Copyright © 2008–2019 FasterXML. All rights reserved.