@JsonUnwrapped注释可以在序列化和反序列化过程中使用解开值。它有助于呈现组合类的值,就像它属于父类一样。
@Target(value={ANNOTATION_TYPE,FIELD,METHOD,PARAMETER}) @Retention(value=RUNTIME) public @interface JsonUnwrapped
import com.fasterxml.jackson.annotation.JsonUnwrapped; import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.core.JsonProcessingException; public class JsonUnwrappedAnnotationTest { public static void main(String args[]) throws JsonProcessingException { ObjectMapper mapper = new ObjectMapper(); String jsonString = mapper.writerWithDefaultPrettyPrinter().writeValueAsString(new Employee()); System.out.println(jsonString); } } class Employee { public int empId = 110; public String empName = "Raja Ramesh"; @JsonUnwrapped public Address address = new Address(); //地址类别 public static class Address { public String doorNumber = "1118"; public String street = "madhapur"; public String pinCode = "500081"; public String city = "Hyderabad"; } }
输出结果
{ "empId" : 110, "empName" : "Raja Ramesh", "doorNumber" : "1118", "street" : "madhapur", "pinCode" : "500081", "city" : "Hyderabad" }