在 Java 中使用 Jackson 时 @JsonUnwrapped 注释的重要性?
javajsonobject oriented programmingprogramming
@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(); // Address class 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" }