Jackson是Java中廣受歡迎的JSON解析庫,它可以實現(xiàn)將Java對象轉(zhuǎn)換為JSON格式以及將JSON格式轉(zhuǎn)換為Java對象。有時候,在Java對象中使用的屬性名可能與JSON中的屬性名不同。為了解決這種問題,Jackson提供了別名機制。
public class Person { @JsonProperty("name") private String fullName; @JsonProperty("age") private int years; } Person person = new Person(); person.setFullName("Tom"); person.setYears(30); ObjectMapper mapper = new ObjectMapper(); String jsonString = mapper.writeValueAsString(person); // 輸出結(jié)果:{"name":"Tom","age":30} Person person2 = mapper.readValue("{"name":"Tom","age":30}", Person.class); String fullName = person2.getFullName(); // 輸出結(jié)果:Tom
在上面的代碼中,@JsonProperty注解可以用于為Java屬性指定別名。在這個例子中,fullName屬性在Java對象中使用,但在JSON中使用的是name屬性名。也就是說,在寫入或讀取JSON時,Jackson將fullName屬性轉(zhuǎn)換為name屬性,并將name屬性轉(zhuǎn)換為fullName屬性。