В последнее время он широко используется. Давайте суммируем все знания, связанные с json. Аннотации jackjson используются чаще.
зависимость Джексона от Maven
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.5.3</version>
Вот отдельная сводка аннотаций, которые часто используются в последнее время.
@JsonProperty :
Эта аннотация используется для атрибутов, и ее функция заключается в сериализации имени атрибута в другое имя, например сериализация атрибута trueName в имя @JsonProperty("name").
Переименуйте имена атрибутов. Например, во многих сценариях атрибуты объектов Java записываются в стандартном верблюжьем регистре, но при проектировании базы данных используется метод соединения с подчеркиванием.
Вы можете использовать эту аннотацию.
Например: используйте эту аннотацию для преобразования следующей структуры таблицы в Javabeans:
public class CustomerInfo{
private int id;
//использовать Аннотация @JsonProperty сопоставляет поля структуры таблицы с классами сущностей.
@JsonProperty("customer_name")
private String customerName;
@JsonProperty("customer_id")
private String customerId;
@JsonProperty("product_id")
private String productId;
@JsonProperty("source_address")
private String sourceAddress;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getCustomerName() {
return customerName;
}
public void setCustomerName(String customerName) {
this.customerName = customerName;
}
public String getCustomerId() {
return customerId;
}
public void setCustomerId(String customerId) {
this.customerId = customerId;
}
public String getProductId() {
return productId;
}
public void setProductId(String productId) {
this.productId = productId;
}
public String getSourceAddress() {
return sourceAddress;
}
public void setSourceAddress(String sourceAddress) {
this.sourceAddress = sourceAddress;
}
}
@JsonIgnore:
Эта аннотация используется для атрибутов или методов (предпочтительно для атрибутов), чтобы полностью игнорировать атрибуты, соответствующие аннотированным полям и методам. Даже если это поле или метод могут быть обнаружены автоматически или имеют другие аннотации, они обычно помечаются в разделе Для атрибутов или методов. , возвращенные данные JSON не содержат этот атрибут.
Сценарий использования: вам необходимо преобразовать список в данные формата json и передать его на стойку регистрации. Но значения базовых полей атрибутов в классах сущностей хранятся в полях атрибутов моментальных снимков. На этом этапе я могу выполнять обработку на бизнес-уровне,
Присвойте значение поля атрибута моментального снимка соответствующему полю базового атрибута в классе сущности. Наконец, я надеюсь, что возвращаемые данные json не содержат этих двух полей снимка, поэтому добавьте аннотацию @JsonIgnore к атрибуту снимка в классе сущности:
Тогда наконец возвращенные данные json не будут содержать два значения атрибутов customerId и ProductId.
public class CustomerInfo {
private int id;
//использовать Аннотация @JsonIgnore игнорирует это поле при создании данных json.
private String customerName;
@JsonIgnore
private String customerId;
@JsonIgnore
private String productId;
private String sourceAddress;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getCustomerName() {
return customerName;
}
public void setCustomerName(String customerName) {
this.customerName = customerName;
}
public String getCustomerId() {
return customerId;
}
public void setCustomerId(String customerId) {
this.customerId = customerId;
}
public String getProductId() {
return productId;
}
public void setProductId(String productId) {
this.productId = productId;
}
public String getSourceAddress() {
return sourceAddress;
}
public void setSourceAddress(String sourceAddress) {
this.sourceAddress = sourceAddress;
}
}
@JsonIgnoreProperties:
Эта аннотация является аннотацией класса. Ее функция — игнорировать некоторые атрибуты Java-компонента во время сериализации json. Это касается как сериализации, так и десериализации.
@JsonFormat Эта аннотация используется для свойств или методов (предпочтительно свойств), которые могут легко преобразовать тип Date непосредственно в нужный нам шаблон.
пример:
@JsonFormat(pattern="гггг-ММ-дд чч:мм:сс")
@JsonFormat(pattern="гггг-ММ-дд ЧЧ:мм:сс")
частная дата updateTime;
5.@JsonSerialize эта аннотация используется для свойств или методов получения.,Используется для встраивания нашего пользовательского кода во время сериализации.,Например, при сериализации двойного числа ограничьте две десятичные точки после него.
@JsonDeserialize:
Эта аннотация используется в свойствах или методах установки для внедрения нашего пользовательского кода во время десериализации, аналогично @JsonSerialize выше.
@JsonInclude :
Значения свойства null не участвуют в сериализации. пример: @JsonInclude(Include.NON_NULL)