Jackson是一個(gè)用于JSON序列化和反序列化的Java庫。它支持許多注解,可以方便地對Java對象進(jìn)行序列化和反序列化。
下面是幾種常用的Jackson注解:
@JsonInclude(JsonInclude.Include.NON_NULL) public class User { private String name; private Integer age; private String email; //省略getter和setter }
JsonInclude注解指定在序列化時(shí)忽略為null的屬性,上面的例子中,如果age或email屬性為null,它們將被忽略。
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd'T'HH:mm:ss.SSSZ") public class Order { private String id; private Date date; //省略getter和setter }
JsonFormat注解指定日期的格式,它支持在序列化和反序列化時(shí)使用。上面的例子中,日期格式為"yyyy-MM-dd'T'HH:mm:ss.SSSZ"。
@JsonCreator public Order(@JsonProperty("id") String id, @JsonProperty("date") Date date) { this.id = id; this.date = date; }
JsonCreator注解指定一個(gè)構(gòu)造函數(shù)作為反序列化的入口。@JsonProperty注解指定JSON屬性名與Java屬性名的映射。上面的例子中,一個(gè)名為id的屬性映射到了Order的id屬性上。
總結(jié)來說,Jackson的注解使序列化和反序列化變得更容易可讀、可維護(hù)。使用Jackson可以輕松地將Java對象轉(zhuǎn)化為JSON和從JSON轉(zhuǎn)換為Java對象。